This repository provides phase-field simulations based on mechanoChemFEM for design and study of intermetallic solid/solid charge transfer interface materials to improve the performance of Li-ion solid-state batteries
Main directories:
- lib: mechanoChemFEM latest source code compatible with all studies/tests
- unit-tests: Automated framework to test mechanoChemFEM and provide template codes for further development by user
- case-studies: Codes and input parameters for all case studies
- utility: useful scripts for pre/post-processing
mechanoChemFEM is a comprehensive open source library (licensed by LGPL) for modeling of mechano-chemical problems using the finite element method developed in Computational Physics Group at University of Michigan, and It consists of classes and functions based on Deal.ii.
- A detailed documentation of mechanoChemFEM is available here
- The latest version of mechanoChemFEM compatible with problems studied in this repo is included in lib directory.
- Install dependencies
- Install mechanoChemFEM
- cd into “build” folder
- Modify CMakeList.txt for path of pre-required libs: deal.ii (with Trilinos, Petsc)
- cmake CMakeLists.txt
make install
or domake release install
make run
Following examples discuss in details how to implement PDEs, set input parameters, and obtain the results in mechanoChemFEM
Example 1: Diffusion-reaction equation
Example 2: Cahn-Hilliard equation
Example 3: Allen-Cahn equation
Example 4: Coupled system with multiple domains
One can unit test mechanoChemFEM and obtain some working examples in 2 easy steps
Step 1: Pulling unit test scripts and data from GitHub Repo
- Using svn (install in Mac: sudo port install subversion) to only download unit-tests subfolder from GitHub
svn checkout https://github.com/mechanoChem/morphogenic-interfaces/trunk/unit-tests
- Clone entire repo including unit test subfolderCancel changes
git clone https://github.com/mechanoChem/morphogenic-interfaces.git
Step 2: runnig the unit_test.py
command inside the downloaded unit-tests folder
python unit_test.py my_test_folder test-1
- unit_test.py has 2 inputs (more options as inputs will be added)
- 1st input: path/to/test/folder (here test_folder), where the unit test files and results are generated
- 2nd input: test name, currently test-1 is available
dealii, mechanoChemFEM, python 3.8+ and numpy, meshio (pip install meshio, MIT license)
Please see case-studies, more information will be added.