Source code for libICEpost.Database.chemistry.specie.Molecules

#####################################################################
#                                 DOC                               #
#####################################################################

"""
@author: F. Ramognino       <federico.ramognino@polimi.it>
Last update:        12/06/2023

Chemical specie
"""

#####################################################################
#                               IMPORT                              #
#####################################################################

from libICEpost.src.thermophysicalModels.specie.specie.Molecule import Molecule

from libICEpost.Database import database
from libICEpost.Database.chemistry.specie.periodicTable import periodicTable

import json

import libICEpost.Database as Database
from libICEpost.Database import database

Molecules:dict[str,Molecule] = database.chemistry.specie.addFolder("Molecules")
Fuels:dict[str,Molecule] = database.chemistry.specie.addFolder("Fuels")
Oxidizers:dict[str,Molecule] = database.chemistry.specie.addFolder("Oxidizers")

#############################################################################
#                                   DATA                                    #
#############################################################################

#Define method to load from dictionary
[docs] def fromJson(fileName, typeName="Molecules"): """ Add molecules to the database from a json file. """ Molecules = database.chemistry.specie.Molecules Fuels = database.chemistry.specie.Fuels with open(fileName) as f: data = json.load(f) for mol in data: Molecules[mol] = \ Molecule\ ( data[mol]["name"], [periodicTable[atom] for atom in data[mol]["specie"]], data[mol]["atoms"] ) if typeName != "Molecules": moleculeClass = database.chemistry.specie[typeName] if typeName in database.chemistry.specie else database.chemistry.specie.addFolder(typeName) moleculeClass[mol] = Molecules[mol]
#Load database fileName = Database.location + "/data/Molecules.json" fromJson(fileName, "Molecules") fileName = Database.location + "/data/Fuels.json" fromJson(fileName, "Fuels") fileName = Database.location + "/data/Oxidizers.json" fromJson(fileName, "Oxidizers") del fileName #Add method to database Molecules.fromJson = fromJson