Chemistry



1 keV electron track evolution in 150 nm liquid water sphere
http://dx.doi.org/10.6084/m9.figshare.978887



Software for the simulation of water radiolysis has been first released in 2014 with Geant4 10.1. This software is intended for the
step-by-step simulation of radiolytic products diffusion and mutual interactions in liquid water following the modeling of physical interactions described in the Physics section.

From 2020, an alternative approach based on the
Independent Reaction Time method (IRT) has been released in Geant4 10.7.

The
examples section shows a list of examples, including six examples for the simulation of water radiolysis.

The following publications (
1, 2, 3, 4, 5, 6, 7, 8) can be consulted for further information.

Documentation will be further updated in the near future.


Frequently Asked Questions on Geant4-DNA chemistry module



  • How to display information on time steps ?


You can activate verbosity on time steps using the following UI command:
/scheduler/verbose 1 (or 2 or 3)

Please look at our example "chem1".

  • How to display molecular species position information ?


You can activate verbosity on tracking using the UI command:
/chem/tracking/verbose 1

See example "chem3".

  • How to count molecular species ?


You can use the G4MoleculeCounter class.

  • How to loop over all molecular species ?


You may use the methods G4UserTimeStepAction::UserPre/PostTimeStepAction to loop over all tracks using the singleton G4ITTrackHolder.

For instance, to
roll over all tracks without distinctions between species:

G4TrackManyList* allTrackList = G4ITTrackHolder::Instance()->GetMainList();
G4TrackManyList::iterator it = allTrackList->begin();
G4TrackManyList::iterator end = allTrackList->end();

for(;it!=end;++it)
{
G4Track* track = *it; // track can be an OH, e_aq, H2, ...
...
}

If you only want to loop over a specific species, the code is very similar, except that you first have to get the moleculeID of the species you want to loop over, and second you have to use the class G4TrackList instead of G4TrackManyList, as follows:

int OH_ID = G4MoleculeTable::Instance()->GetConfiguration("OH")->GetMoleculeID();

G4TrackList* OH_List = G4ITTrackHolder::Instance()->GetMainList(OH_ID);
G4TrackList::iterator it = OH_List->begin();
G4TrackList::iterator end = OH_List->end();

for(;it!=end;++it)
{
G4Track* track = *it; // track is only of the OH type
...
}

Do not forget to include G4MoleculeTable, G4MolecularConfiguration, G4ITTrackHolder, G4TrackList and G4TrackManyList according to what you want to do before using the above snippets.

  • How to use the IRT method for water radiolysis simulation ?


You can use the "chem6" example.

  • Whom to contact ?


You may contact Dr Mathieu Karamitros if needed.

RapidWeaver Icon

Made in RapidWeaver