See. ReactorUI
gfortran -O3 irkc_m.f90 define_ivp.f90 reactorGen.f90 -o reactor
-
irkc_m.f90 : IRKC implicit-explicit integrator module
L.F. Shampine. B.P. Sommeijer and J.G. Verwer (2006)
IRKC: an IMEX Solver for Stiff Diffusion-Reaction PDEs.
J. Comput. Appl. Math. 196:485-497.
(https://doi.org/10.1016/j.cam.2005.09.014) -
define_ivp.f90 : module implementing the
FE
andFI
gradient routines for IRKC using a sparse representation of the stoechiometry matrix following
A. Cangiani (2012)
Biochemical pathways simulation.
(https://arxiv.org/abs/1208.4222) -
reactorGen.f90 : main program, described in
Z. Peng, N. Carrasco and P. Pernot (2014)
Modeling of synchrotron-based laboratory simulations of Titan's ionospheric photochemistry.
GeoResJ 1-2:33-53
(https://doi.org/10.1016/j.grj.2014.03.002)
- ChemDBPublic contient les bases de données de référence pour la chimie et la photochimie
- Projects contient les projets (un répertoire par projet, contenant toutes les inputs et outputs pour ce projet). La structure de chaque projet est la suivante:
- Scripts : codes pour la création de bases de données adaptées au projet et pour l'analyse des résultats
- Run : là où vit le code
reactor
- MC_Input : contient les bases de données pour le projet
- MC_Output : contient les fichiers de résultats du code
Dans le répertoire Projects
-
Copier un ancien projet et changer son nom (choisir le nom le plus explicite possible)
-
Aller dans le sous-répertoire Scripts et éditer le fichier
getSamples.R
:- choisir le répertoire de travail
- choisir le nombre de tirages Monte Carlo dans la base de données
- choisir le mélange gazeux
-
Lancer
getSamples.R
, qui va peupler MC_Inputs et créer divers fichiers de configuration dans Run. -
Editer le fichier
Run/control.dat
(paramètres du réacteur, du flux de photons, composition du mélange gazeux...)
Ouvrir un terminal
- Se placer dans le répertoire du projet
- Lancer la commande
./Scripts/OneRun_Loc.sh 0
(l'indice 0 réfère à la version nominale des bases de données de réactions)
- Se placer dans le répertoire du projet
- Lancer la commande
./Scripts/MCRun_Loc.sh xxx
où xxx est le nombre de runs souhaité. Le code fera le run nominal (indice 0) plus xxx runs aléatoires. Le nombre de runs demandé doit être inférieur ou égal au nombre d'échantillons dans MC_Inputs
Les résultats seront dans MC_Outputs:
fracmol_xxxx.dat
contient les concentrations des espèces en fonction du temps (xxxx est le numéro du run: 0000 pour nominal)mc_rates_xxxx.dat
contient les constantes de vitesse dans les conditions du réacteur, pour le run xxxx.photo_rates_xxxx.dat
contient les les constantes de photolyse dans les conditions du réacteur, pour le run xxxx.
Pour traiter ces fichiers, on utilise des scripts R. Typiquement, dans Rstudio
- choisir le script à exécuter
- Scripts/plotSpEvol.R : lit le run nominal et trace les courbes de fractions molaires pour les neutres et les ions et calcule le taux de conso de CH4 et le taux d'ionisation
- Scripts/viewSpEvol.R : lit tous les runs et génère un fichier pdf dans lequel on a 1 figure d'évolution de concentration par espèce
- Scripts/viewSample.R : lit tous les runs et génère des pseudo spectres de masse (non convolués par les fragmentation patterns) pour le temps final des simulations. Il génère aussi un fichier yStats_xxx qui est lu par le script suivant.
- Scripts/EI_MS.R : lit yStats_xxx et génère un spectre de masse mar impact electronique. PAS FONCTIONNEL. A FAIRE...
- choisir le répertoire de travail comme MC_Outputs
- lancer le script
Selon les scripts, des fichiers de figures sont générés dans MC_Outputs, ou bien les figures apparaissent dans Rstudio. Tout ceci peut être customisé!!!