Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
479229a
prototype from laplace
lihanyu97 Apr 25, 2025
e303da3
add electrochemistry material model
lihanyu97 Apr 26, 2025
b14c914
implement BV term
lihanyu97 May 7, 2025
ef93c26
Add interface material model
lihanyu97 Aug 19, 2025
9540694
2D defect case included
lihanyu97 Aug 27, 2025
4a8d605
schema file
lihanyu97 Aug 27, 2025
194c869
Merge branch 'develop' into li/electrostatics
lihanyu97 Aug 27, 2025
c05b148
Add physics to BV term
lihanyu97 Aug 28, 2025
bb6b208
Elastic finite strain material model
lihanyu97 Dec 18, 2025
cbd5419
rename
lihanyu97 Dec 18, 2025
9c0852e
Merge branch 'develop' into li/electrostatics
lihanyu97 Dec 18, 2025
b08bbb5
Compiled successfully
lihanyu97 Dec 18, 2025
2d33b3d
delete duplicate files during merge
lihanyu97 Dec 18, 2025
8de8e75
correct kirchhoff stress
lihanyu97 Dec 19, 2025
91638f2
finite strain kernel compiled
lihanyu97 Jan 7, 2026
c1854de
solution converged
lihanyu97 Jan 15, 2026
b0b7070
add finite strain cases
lihanyu97 Jan 22, 2026
56ab0cb
Merge branch 'develop' into li/electrostatics
lihanyu97 Jan 22, 2026
39d7074
fix gcc compiler
lihanyu97 Jan 22, 2026
e6cabf0
clean up unused variables
lihanyu97 Jan 22, 2026
3e0a7b3
Merge branch 'develop' into li/electrostatics
lihanyu97 Jan 30, 2026
263126f
fix styles
lihanyu97 Feb 4, 2026
76d75d9
Merge remote-tracking branch 'origin/develop' into li/electrostatics
frankfeifan Mar 2, 2026
37e7f8f
resolve merge conflicts for feOps and bcs
frankfeifan Mar 2, 2026
8ec357c
style and schema
frankfeifan Mar 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions host-configs/LLNL/dane-toss_4_x86_64_ib-gcc@12.1.1.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ set(CMAKE_C_COMPILER "/usr/tce/packages/gcc/gcc-12.1.1-magic/bin/gcc" CACHE PATH

set(CMAKE_CXX_COMPILER "/usr/tce/packages/gcc/gcc-12.1.1-magic/bin/g++" CACHE PATH "")

set(CMAKE_Fortran_COMPILER "/usr/tce/packages/gcc/gcc-12.1.1-magic/bin/gfortran" CACHE PATH "")

set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE STRING "")

set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG" CACHE STRING "")
Expand All @@ -37,9 +39,10 @@ set(MPI_C_COMPILER "/usr/tce/packages/mvapich2/mvapich2-2.3.7-gcc-12.1.1-magic/b

set(MPI_CXX_COMPILER "/usr/tce/packages/mvapich2/mvapich2-2.3.7-gcc-12.1.1-magic/bin/mpicxx" CACHE PATH "")

set(MPIEXEC "srun" CACHE PATH "")
set(MPI_Fortran_COMPILER "/usr/tce/packages/mvapich2/mvapich2-2.3.7-gcc-12.1.1-magic/bin/mpif90" CACHE PATH "")

set(MPIEXEC_NUMPROC_FLAG "-n" CACHE PATH "")
set(MPIEXEC_EXECUTABLE "/usr/bin/srun" CACHE PATH "")
set(MPIEXEC_NUMPROC_FLAG "-n" CACHE STRING "")

#--------------------------------------------------------------------------------
# OpenMP
Expand Down
156 changes: 156 additions & 0 deletions inputFiles/Electrostatics/Electrostatics_base.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
<?xml version="1.0" ?>

<Problem>

<Solvers>
<Electrostatics
name="halfcell"
discretization="FE1"
fieldName="potential"
targetRegions="{Region1, Region2, SEIRegion}">
<LinearSolverParameters
directParallel="0"/>
</Electrostatics>

<SurfaceGenerator
name="SurfaceGen"
fractureRegion="SEIRegion"
targetRegions="{ Region1, Region2 }"
initialRockToughness="1.0e10"
mpiCommOrder="1"/>
</Solvers>

<Mesh>
<InternalMesh
name="mesh1"
elementTypes="{C3D8}"
xCoords="{0, 5, 10}"
yCoords="{0, 1}"
zCoords="{0, 1}"
nx="{5, 5}"
ny="{1}"
nz="{1}"
cellBlockNames="{electrode, electrolyte}"/>
</Mesh>

<Geometry>
<Box
name="currentCollector"
xMin="{ -0.01, -0.01, -0.01 }"
xMax="{ 0.01, 1.01, 1.01 }"/>

<Box
name="ground"
xMin="{ 9.99, -0.01, -0.01 }"
xMax="{ 10.01, 1.01, 1.01 }"/>

<Box
name="SEI"
xMin="{ 4.99, -0.01, -0.01 }"
xMax="{ 5.01, 1.01, 1.01 }"/>
</Geometry>

<ElementRegions>
<CellElementRegion
name="Region1"
cellBlocks="{electrode}"
materialList="{electrodeMaterial}"/>

<CellElementRegion
name="Region2"
cellBlocks="{electrolyte}"
materialList="{electrolyteMaterial}"/>

<SurfaceElementRegion
name="SEIRegion"
defaultAperture="1.0e-6"
materialList="{lithium}"/>
</ElementRegions>

<Constitutive>
<ElectroChemistryBase
name="electrodeMaterial"
defaultConductivity="100.0"/>

<ElectroChemistryBase
name="electrolyteMaterial"
defaultConductivity="10.0"/>

<ButlerVolmerInterface
name="lithium"
defaultReactivityCoefficient="1.0"/>
</Constitutive>

<NumericalMethods>
<FiniteElements>
<FiniteElementSpace
name="FE1"
order="1"/>
</FiniteElements>
</NumericalMethods>

<Outputs>
<VTK
name="vtkOutput"/>
</Outputs>

<Events
maxTime="1.0">

<SoloEvent
name="preInterface"
target="/Solvers/SurfaceGen"/>

<PeriodicEvent
name="solverApplication"
forceDt="1.0"
target="/Solvers/halfcell"/>

<PeriodicEvent
name="outputs"
timeFrequency="1.0"
target="/Outputs/vtkOutput"/>
</Events>

<FieldSpecifications>
<FieldSpecification
name="groundPotential"
fieldName="potential"
objectPath="nodeManager"
scale="0.0"
setNames="{ground}"/>

<Traction
name="inputCurrent"
objectPath="faceManager"
tractionType="normal"
scale="-1.0"
functionName="NeumannTimeFunction"
setNames="{currentCollector}"/>

<FieldSpecification
name="sei"
initialCondition="1"
setNames="{ SEI }"
objectPath="faceManager"
fieldName="ruptureState"
scale="1"/>

<FieldSpecification
name="separableFace"
initialCondition="1"
setNames="{ SEI }"
objectPath="faceManager"
fieldName="isFaceSeparable"
scale="1"/>
</FieldSpecifications>

<Functions>
<TableFunction
name="NeumannTimeFunction"
inputVarNames="{time}"
coordinates="{ 0.0, 1.0}"
values="{ 0.0, -1.0}"/>
</Functions>

</Problem>
173 changes: 173 additions & 0 deletions inputFiles/Electrostatics/Electrostatics_variable_reactivity.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
<?xml version="1.0" ?>

<Problem>

<Solvers>
<Electrostatics
name="halfcell"
discretization="FE1"
fieldName="potential"
targetRegions="{Region1, Region2, SEIRegion}">
<LinearSolverParameters
directParallel="0"/>
</Electrostatics>

<SurfaceGenerator
name="SurfaceGen"
fractureRegion="SEIRegion"
targetRegions="{ Region1, Region2 }"
initialRockToughness="1.0e10"
mpiCommOrder="1"/>

</Solvers>

<Mesh>
<InternalMesh
name="mesh1"
elementTypes="{C3D8}"
xCoords="{0, 5, 10}"
yCoords="{0, 10}"
zCoords="{0, 1}"
nx="{5, 5}"
ny="{10}"
nz="{1}"
cellBlockNames="{electrode, electrolyte}"/>
</Mesh>

<Geometry>
<Box
name="currentCollector"
xMin="{ -0.01, -0.01, -0.01 }"
xMax="{ 0.01, 10.01, 1.01 }"/>

<Box
name="ground"
xMin="{ 9.99, -0.01, -0.01 }"
xMax="{ 10.01, 10.01, 1.01 }"/>

<Box
name="SEITop"
xMin="{ 4.99, 4.99, -0.01 }"
xMax="{ 5.01, 10.01, 1.01 }"/>

<Box
name="SEIBottom"
xMin="{ 4.99, -0.01, -0.01 }"
xMax="{ 5.01, 5.01, 1.01 }"/>

</Geometry>

<ElementRegions>
<CellElementRegion
name="Region1"
cellBlocks="{electrode}"
materialList="{electrodeMaterial}"/>

<CellElementRegion
name="Region2"
cellBlocks="{electrolyte}"
materialList="{electrolyteMaterial}"/>

<SurfaceElementRegion
name="SEIRegion"
defaultAperture="1.0e-6"
materialList="{metalSE}"/>
</ElementRegions>

<Constitutive>
<ElectroChemistryBase
name="electrodeMaterial"
defaultConductivity="100.0"/>

<ElectroChemistryBase
name="electrolyteMaterial"
defaultConductivity="1.0"/>

<ButlerVolmerInterface
name="metalSE"
defaultReactivityCoefficient="5.0"/>
</Constitutive>

<NumericalMethods>
<FiniteElements>
<FiniteElementSpace
name="FE1"
order="1"/>
</FiniteElements>
</NumericalMethods>

<Outputs>
<VTK
name="vtkOutput"/>
</Outputs>

<Events
maxTime="1.0">

<SoloEvent
name="preInterface"
target="/Solvers/SurfaceGen"/>

<PeriodicEvent
name="solverApplication"
forceDt="1.0"
target="/Solvers/halfcell"/>

<PeriodicEvent
name="outputs"
timeFrequency="1.0"
target="/Outputs/vtkOutput"/>
</Events>

<FieldSpecifications>
<FieldSpecification
name="groundPotential"
fieldName="potential"
objectPath="nodeManager"
scale="0.0"
setNames="{ground}"/>

<Traction
name="inputCurrent"
objectPath="faceManager"
tractionType="normal"
scale="-1.0"
functionName="NeumannTimeFunction"
setNames="{currentCollector}"/>

<FieldSpecification
name="sei"
initialCondition="1"
setNames="{ SEITop, SEIBottom }"
objectPath="faceManager"
fieldName="ruptureState"
scale="1"/>

<FieldSpecification
name="separableFace"
initialCondition="1"
setNames="{ SEITop, SEIBottom }"
objectPath="faceManager"
fieldName="isFaceSeparable"
scale="1"/>

<FieldSpecification
name="SEITopReactivityCoef"
initialCondition="1"
setNames="{ SEITop }"
objectPath="ElementRegions/SEIRegion"
fieldName="metalSE_reactivityCoefficient"
scale="0.0"/>

<!-- This is how you comment in xml -->
</FieldSpecifications>

<Functions>
<TableFunction
name="NeumannTimeFunction"
inputVarNames="{time}"
coordinates="{ 0.0, 1.0}"
values="{ 0.0, -1.0}"/>
</Functions>

</Problem>
Loading
Loading