Link to Repository: https://github.com/RidgetopGroupInc/AEM-API
- On the user level, there are three major inputs - Electrolyte Composition, ACCC Electrolyte Composition, and Input Parameters. In the Electrolyte Composition, the user can define up to 10 solvents (fixed mode) or 5 solvents (matrix mode) and up to two salts. In the ACCC Electrolyte Composition, the user can define up to 10 ACCC solvents (fixed mode) or 5 ACCC solvents (matrix mode) and only one ACCC salt. The ACCC salt chosen must contain all the identifiers for the chosen ACCC solvent. The user can choose between a pure non-ACCC composition, a pure ACCC composition, or a cross composition between non-ACCC and ACCC components. Next, Input Parameters lists the various inputs required for running AEM CLI executable. These inputs are essential for configuring AEM simulation runs and determining the specific conditions under which the model operates.
- Within the API itself (AEM_API.py) there are three classes - the ElectrolyteComposition Class, the ACCCElectrolyteComposition Class, and the AEM_API Class. The ElectrolyteComposition Class includes functions for managing the non-ACCC composition, whereas the ACCCElectrolyteComposition Class includes functions for managing the ACCC composition. The AEM_API Class contains functions for reading inputs, generating compositions, running simulations using the AEM CLI program, saving logs, exporting files and results, processing data, and saving processed data.
- Within the AEM_PARSER (AEM_PARSER.py) there are various classes such as the aem_run class, the aem_report class, aem_report01, aem_report02, ....., aem_report20 classes for each report generated by AEM. Additionally, there various major functions defined such as - the parseReport function, the parse_composition_temperature function, parseReport01, parseReport02, ....., parseReport20 functions for each report, the aem_convert_to_csv function, and the the aem_convert_to_json function. These classes and functions are responsible to create the .csv and .json files from the default output .txt files from the AEM CLI program.
- The Outputs from the API are organized into the AEM_API_Output directory in run directories with the name AEMRun-RunID-RunDate-RunTime. Each run directory includes the Reports and a run log .json file (AEMRun-RunID-RunDate-RunTime-Log.json). The Reports folder contains different types of reports generate in .txt, .csv, and .json formats. The .csv files are saved in the Reports\csv folder, whereas The .json files are saved in the Reports\json folder. These reports cover a wide range of analyses, from key properties summaries and thermodynamic terms to density, viscosity, conductivity, and cation desolvation. Other reports focus on dielectric analysis, transport properties, molar volume, ion-pair formation, self-diffusion coefficients, and ligand-wise analyses, among others. Each report provides detailed insights into specific aspects of the electrolyte compositions and their behaviors under various conditions.
To get a local copy up and running follow these simple steps.
- Python 3.7 or higher
- git 2.46.0 or higher
- Clone the repo
git clone https://github.com/RidgetopGroupInc/AEM-API.git
- Install the required dependencies
pip install -r requirements.txt
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the GNU GPL-3.0 License. See LICENSE
for more information.
- Dr. Kevin Gering (Distinguished Scientist, Idaho National Laboratory) - kevin.gering@inl.gov
AEM API
- Arsh Nadkarni (Applications Engineer, Ridgetop) - anadkarni@ridgetopgroup.com
- Dr. Basab Ranjan Das Goswami (Battery Simulations Engineer, Ridgetop) - brdgoswami@ridgetopgroup.com
AEM GUI/CLI
- Christopher Curti (Senior Software Engineer, Ridgetop) - ccurti@ridgetopgroup.com
- Wyatt Pena (VP of Operations, Ridgetop) - wpena@ridgetopgroup.com
- Dr. Adarsh Dave (Research Staff, Carnegie Mellon University) - ardave@andrew.cmu.edu
- othneildrew's Best-README-Template