Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

multi-species #206

Open
stonecoldhughes opened this issue Feb 20, 2025 · 2 comments
Open

multi-species #206

stonecoldhughes opened this issue Feb 20, 2025 · 2 comments

Comments

@stonecoldhughes
Copy link
Collaborator

approach:

define a multi-species test problem

the sasvw problem is the only known candidate at this time

identify where material species is defined in the input and output

surfaceModel section of gitrInput.cfg and surface.nc in output folder.

identify where these options are parsed and used in the codebase

in gitr.cpp, within conditional blocks if( f.surface_model > 0 ), three sections can be found.

First section obtains the necessary size
Second section allocates multiple sim::Array classes of proper size to hold probability distributions
Third section populates the memory from netcdf input, and formats the probability distributions using make2dCDF and regrid2dCDF.

these are passed to the reflection operator as parameters

in surfaceModel.h and surface_model.cpp

all relevant logic is contained in the reflection class operator()

identify the outcome of the surface model and work backwards to determine needed changes - the "endpoints"

two endpoints seem apparent:

First, the new vx, vy, and vz of the particle that is reflected or sputtered.

Second, the grossErosion, grossDeposition, and other arrays are updated with particle weights.

study how the reflection operator works to determine what needs to be changed to add multi-species

the places where interp3d occurs appear to be where the probability distributions are actually sampled
the r7-r10 variables appear to be where the Monte Carlo randomness comes from

open questions

some of the arrays in surface.nc output seem to be modified in geometry_check as well as surface_model. How do these functors work together to update the surface model information?

do any of the outputs in surface.nc need to be material-species aware? Do new bins need to be added to distinguish between the particle species that would currently end up in the same bin?

what are the next steps to add multi-species?

@stonecoldhughes
Copy link
Collaborator Author

suggestions:

  1. ensure Alyssa has a good understanding of what model is desired
  2. https://onlinelibrary.wiley.com/doi/epdf/10.1002/ctpp.202400073 for reference

@stonecoldhughes
Copy link
Collaborator Author

surface_model vs geometry_check - if surface_model is off, use geometry_check to do erosion and deposition binning

otherwise if surface_model is on, geometry_check is disabled in terms of adding to these arrays

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant