/morphogenic-interfaces

Primary LanguageC++GNU Lesser General Public License v2.1LGPL-2.1

(1) Morphogenic interfaces overview

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

(2) mechanoChemFEM

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.

Installation

  1. Install dependencies
    1. Install CMake
    2. Install deal.II with Trilinos and PetSc (Deal.II OSX binaries include full packages of deal.ii with Trillions and other useful libs.)
  2. Install mechanoChemFEM
    1. cd into “build” folder
    2. Modify CMakeList.txt for path of pre-required libs: deal.ii (with Trilinos, Petsc)
    3. cmake CMakeLists.txt
    4. make install or do make release install
    5. make run

Usage

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

(3) Automated testing and making template examples (beta version)

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

Dependencies for running tests

dealii, mechanoChemFEM, python 3.8+ and numpy, meshio (pip install meshio, MIT license)

(4) Case studies for morphogenic interfaces

Please see case-studies, more information will be added.