|Message: Some errors and modifications to the extended/biasing/B02/||Not Logged In (login)|
Click on the Forum title, e.g. on the "Forums by Category" page, to read a sequence of postings to the Forum and its threads all in one page. If you are only interested in one thread or the thread following a specific posting, click the thread or the posting, which takes you to a smaller page, which contains only the part you are interested in and may be easier to navigate.
Messages are "chained" if there are only replies at the first level, i.e. 1/1.html, 1/1/1.html etc. In case of "chained" messages the message number is replaced by the icon and there is no indentation.
Inline: Display the subject line only or also the text of the posting(s); for the choice "All" the "Outline" choices are switched off.
|1||0||1||no text / full text of posting|
|2||1||All||text for level 1 only / text for All postings|
Outline: Choose the depth of the posting thread, successive toggle controls provide increasing detail.
|1||2||1||2 levels / 1 level (original posting)|
|2||3||2||3 levels / 2 levels|
|3||3||All||3 levels / all levels (all postings)|
Recently, I want to use Mesh Weight Window in a Parallel World to solve the deep penetration problems. And after I read the manual and examples, I decided to achieve this function based on extended/biasing/B02, which could use Importance(default) or Weight Window to solve the deep penetration problems. But when I try to switch the Importance to Weight Window (without other modifications, just comment out some lines which call Importance-related functions), there always be some errors.
After a few days trying, I found that the reason is that there are some missing lines for Weight Window. So when the exampleB02 use default Importance, it's fine, but when the exampleB02 switch to Weight Window, it will encounter errors.
Following is the original code of extended/biasing/B02/exampleB02.cc :
G4VModularPhysicsList* physicsList = new FTFP_BERT; physicsList->RegisterPhysics(new G4ImportanceBiasing(&pgs,parallelName)); physicsList->RegisterPhysics(new G4ParallelWorldPhysics(parallelName));
And this is the modified version:
G4VModularPhysicsList* physicsList = new FTFP_BERT;
G4WeightWindowAlgorithm* wwAlg = new G4WeightWindowAlgorithm(1, // upper limit factor 1, // survival factor 100); // max. number of splitting
const G4String& name = "ParallelWP"; physicsList->RegisterPhysics(new G4WeightWindowBiasing(&pgs, wwAlg, onBoundary, name)); //physicsList->RegisterPhysics(new G4ImportanceBiasing(&pgs,parallelName)); physicsList->RegisterPhysics(new G4ParallelWorldPhysics(parallelName));
Some tips for this modified version:
Don't forget to include the corresponding head file for the new lines; And the 'const G4String& name = "ParallelWP";' line is necessary, otherwise the Weight Window will not assign to the geometry in Parallel World (this part has puzzled me for a long time);
And there is also a small change in extended/biasing/B02/exampleB02.cc The original code:
where the only change is adding a new line to call the Weight Window function:
I hope this could be helpful to others.