Comments (5)
Currently the model finder always returns a valid model: using the integral approach, the process xs is recalculated at the post-step energy and if it's zero (no applicable process) then no model is returned before actually trying to select a model. We might be able to use your suggestion if the post-step process xs is zero and resample a process, but I don't think we would need material-dependent model applicabilities.
from celeritas.
the applicability doesn't allow us to limit correctly the lower energy of models based on their production cutoff, so we end up sampling inapplicable discrete models (most seriously in the case of stopped positrons)
Is this because of the applicability, or because the process is sampled from the cross sections calculated at the pre-step energy and the particle might lose energy over the step (possibly making the sampled process/model inapplicable at the post-step energy)?
from celeritas.
It's because the way I implemented applicability requires the same lower bound for all materials. If we could do material-dependent, then we would be able to select the actually applicable models from the post-slowing-down energy.
from celeritas.
But won't we still be sampling the (possibly now inapplicable) process from the pre-step energy?
from celeritas.
Right: we calculated the process cross sections using pre-step energies. Well, perhaps we could adjust the logic at the end of select_discrete_interaction
so that if the model finder returns "no model" (which it can do with the post-step energy), the associated per-process xs is set to zero (and the macro xs reduced accordingly) and we return to the top of the function to resample a process? Unless there are processes with upper energy bounds, this will allow us to always sample a process that has a valid model.
from celeritas.
Related Issues (20)
- Performance impact of shared memory carveout
- Refactor CELER_(DISABLE|PARALLEL) environment variables
- Ensure reproducibility when using MT Geant4 with Celeritas offloading HOT 1
- Implement offload to Celeritas via G4VTrackingManager
- Improve device initialization for eventual CMSSW use
- Signal handling not thread-safe
- Automate tricky input parameters
- Support Intel GPUs
- Add G4VG support for ALICE Geant4 geometry components HOT 5
- Build errors with GEANT4 11.2.0 HOT 2
- Add ORANGE construction of single units HOT 2
- Nonuniform Rayleigh scattering cross section grid in Geant4 11.2 HOT 4
- Update celer-g4 ROOT I/O
- Improve performance scaling with host threads HOT 2
- Crash in TrackSort test with VecGeom: illegal memory access HOT 2
- Add "region" support for cuts, along-step treatment, ...
- Add safety distance calculation HOT 4
- Add multi-level navigation HOT 1
- Use geometry length scale to determine a minimum step HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from celeritas.