Skip to content
Snippets Groups Projects
Commit 1b279642 authored by jonathan.froehlich's avatar jonathan.froehlich
Browse files

Added usage configs

parent 29ad2701
No related branches found
No related tags found
1 merge request!231Resolve "Document Code"
Pipeline #125725 canceled
......@@ -2,9 +2,11 @@
M++ is a parallel PDE solving software requiring some preinstalled packages. This guide hopefully walks you through the installation process.
### Prerequisites
This version of M++ uses CMake as building tool. If you haven't installed CMake Version 3.10 or higher, find out about the installation process on https://cmake.org/download/.
This version of M++ uses CMake as building tool. If you haven't installed CMake Version 3.15 or higher, find out about
the installation process on https://cmake.org/download/.
Furthermore, you need the packages BLAS (Basic Linear Algebra Subroutines) and LAPACK (Linear Algebra PACKage). Find out more on https://www.netlib.org/blas/ and https://www.netlib.org/lapack/.
Furthermore, you need the packages BLAS (Basic Linear Algebra Subroutines) and LAPACK (Linear Algebra PACKage). Find out
more on https://www.netlib.org/blas/ and https://www.netlib.org/lapack/.
Most importantly, M++ is a is a parallel PDE solving software. In order to distribute your computations on parallel processes you need to have Open MPI (Message Passing Interface) installed.
If not installed, get a version of Open MPI (e.g. 2.1) on https://www.open-mpi.org/software/ompi/v2.1/ and follow the installation instructions.
......
USAGE.md 0 → 100644
# Using CardMech-M++
To use the CardMech suite, simply run
You can run the predefined code by using the command
```./M++``` or ```mpirun -n N M++```
where N is the number of parallel processes you want to start.
When executed, M++ searches for the ```m++.conf``` Config file in the ```conf/``` folder, which specifies all program
arguments
## .conf Files
The default ```m++.conf``` specifies, which part of the CardMech suite is executed:
```
#loadconf = electrophysiology/m++.conf;
loadconf = elasticity/m++.conf;
#loadconf = coupled/m++.conf;
```
Only one of these configurations should be loaded at one time, as the different configurations may interfere with each
other
### Problems
Problems are categorized in elasticity, electrophysiological and coupled problems. They are loaded with the following
commands:
```
MechProblem = Default
ElphyProblem = TetraTestProblem
CoupledProblem = BiventricleCoarse
```
Model = Coupled
CoupledModel = Segregated
#CoupledProblem = BiventricleCoarse
ElphyModelClass = MElphyModel
ElphyModelName = TenTusscher
TensionModelName = Rossi
RossiViscosity = 11.0
RossiForce = 6.0
ElphyLevel = 3
MechLevel = 1
MechPolynomialDegree = 1
ElphyPolynomialDegree = 1
######################
# Time #
######################
StartTime = 0.0
#EndTime=0.00001
EndTime = 0.8
#EndTime = 0.02
MechDeltaTime = 0.004
ElphyDeltaTime = 0.0001
DeltaTime = 0.0001
DeltaTimeMin = 0.00001
DeltaTimeMax = 0.001
######################
# Plotting #
######################
PlottingSteps = 1
#######################
# Coupled Data #
#######################
ClearDistribution = 0
MechDiscretization = Conforming
MechRuntype = Default
MechDynamics = Newmark
#MechDynamics = RayleighNewmark
#MechDynamics = ViscoNewmark
#------------------------
# Newmark Parameters
#------------------------
# Damped Newmark
NewmarkBeta = 0.4
NewmarkGamma = 0.7
# Undamped Newmark
#NewmarkBeta = 0.25
#NewmarkGamma = 0.5
# Amount of pressure steps per iteration
PressureSteps = 1
# If Iteration with Pressuresteps fails, recursively restart PressureSolver with Steps*2 until iteration limit is reached
PressureIterations = 10
PressureDepth = 0
WithPrestress=true
PrestressSteps=10
######################
# Meshes #
######################
MechMeshPart = with_vessels
MechMeshPart = vessel_base
StartTime = 0.0
EndTime = 0.4
DeltaTime = 0.001
DeltaTimeMin = 0.0001
DeltaTimeMax = 0.001
TractionK = 0.1
TractionC = 1e-3
#------------------------
# Stretch Parameters
#------------------------
StretchFactorSheet = 4.0
StretchFactorNormal = 4.0
######################
# Material Parameters#
######################
Density = 0.001082
#------------------------
# Volumetric Penalty
# Incompressible should be true or false
# Penalty Types: None, Ciarlet, Mixed
#------------------------
VolumetricSplit = 0
Incompressible = false
QuasiCompressiblePenalty = Ciarlet #None, Ciarlet, Mixed
VolumetricPenalty = 20
PermeabilityPenalty = 20
DGSign=-1.0
DGPenalty=20.0
ElphyModel = SemiImplicit
OrderStaggeredScheme=wcV
ReassembleRHSonce=1
CrankNicolsonTheta = 0.5
ElphySplittingMethod =Godunov #Strang, Stein,Godunov
#Iext splitted in PDE =1, Iext in ODE =0
IextInPDE=1
#Glaettung von Anregung in Zeit: Stepfunction,Arctan,Tanh
ExternalCurrentSmoothingInTime = Arctan
#Glättung Anregung im Raum: discrete, linear
ExternalCurrentSmoothingInSpace = linear
ElphyMeshPart = ventriclesonly
# Monodomain Parameters
SurfaceToVolumeRatio= 140#1/mm
MembraneCapacitance=0.01#muF/mm^2
IntraLongitudinal = 0.170
ExtraLongitudinal = 0.620
IntraTransversal = 0.019
ExtraTransversal = 0.240
ElphyIntegrator=ExplicitEuler
CellModelScheme = ExponentialIntegrator
IonScheme = RungeKutta2 # ExplicitEuler,RungeKutta2,RungeKutta4
ThresholdVForActivation=-40.0
ScaleExcitationAmplitude=0.04101
EulerReAssemble = 0
SetSolution = 0
# === Linear Solver === #
LinearSolver = gmres
LinearEpsilon = 1e-8
LinearReduction = 1e-8
LinearReduction = 1e-11
LinearSteps = 10000
BasePreconditioner = GaussSeidel
Preconditioner = GaussSeidel
Preconditioner = LIB_PS
# =================================================================
# === Gating Solver ===============================================
GatingSolver = gmres
GatingPreconditioner = GaussSeidel
GatingEpsilon = 1e-8
GatingReduction = 1e-12
# === Elphy Solver ================================================
ElphySolver = gmres
ElphyPreconditioner=Jacobi
ElphyEpsilon = 1e-8
ElphyReduction = 1e-12
# === Mechanics Solver ============================================
MechSolver = gmres
MechPreconditioner = GaussSeidel
MechEpsilon = 1e-8
MechReduction = 1e-12
MechSteps = 20000
# === Newton Method === #
NewtonEpsilon = 1e-6
NewtonReduction = 1e-12
NewtonSteps = 300
NewtonLineSearchSteps = 10
NewtonLinearizationReduction = 1e-12
#Smoother = GaussSeidel
#Smoother = PointBlockGaussSeidel
#SmootherDamp = 0.9
presmoothing = 3
postsmoothing = 3
ConfigVerbose = 1
AssembleVerbose = 1
# = Solver Verbose =
MultigridVerbose = 0
BaseSolverVerbose = -1
LinearVerbose = -5
NewtonVerbose = 0
EulerVerbose = 0
LinearImplicitVerbose = -5
ElphyLinearSolverVerbose =-1
MonodomainVerbose =-1
NonLinearVerbose = -5
ElphySolverVerbose = 0
CoupledSolverVerbose = 4
CellModelVerbose = 0
# = Main Verbose =
ElphyVerbose = 1
MechVerbose = 1
# = Plot Verbose =
ElphyVTK = 0 # 0 Disables all plots from Electrophysiology
MechVTK = 1 # 0 Disables all plots from Elasticity
# = Plot Verbose =
PressureSolverVTK = 0
DynamicSolverVTK = 1
ElphySolverVTK = 0
CoupledSolverVTK = 1
PlotVTK = 1
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment