Commit 4b035a64 authored by laura.pfeiffer's avatar laura.pfeiffer
Browse files

added BiVentricleTest

parent 9b7a5789
Pipeline #219507 passed with stages
in 29 minutes and 37 seconds
# === Electrophysioligcal Models: =================================
# = TenTusscher =
# = =
# === Tension Models: =============================================
# = Land =
# = =
# =================================================================
ElphyModelClass = MElphyModel
ElphyModelName = BeelerReuter
#CellModelName = FitzHughNagumo
#CellModelScheme=LinearImplicit
CellModelScheme=ExponentialIntegrator
ThresholdVForActivation=-40.0
# === Iterative Solvers: ==========================================
# = LS, CG, CGX, CGNE, BiCGStab, BiCGStab2, GMRES, MINRES, TestDG =
# = =
# === Direct Solvers: =============================================
# = SuperLU, SuperLU_local, LIB_PS, PS =
# = =
# === Preconditioners: ============================================
# = Jacobi, PointBlockJacobi, PointBlockJacobi_dG, DampedJacobi, =
# = GaussSeidel, PointBlockGaussSeidel, SSOR, SGS, UMF =
# =================================================================
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# WICHTIG: Mit SuperLU funktioniert die Parallelisierung nicht richtig!;
#ElphyPreconditioner LIB_PS;
ElphyEpsilon = 1e-8;
ElphyReduction = 1e-12;
# === Stretch Solver ==============================================
StretchSolver = gmres;
StretchPreconditioner = GaussSeidel;
StretchEpsilon = 1e-8;
StretchReduction = 1e-12;
# === Mechanics Solver ============================================
MechSolver = gmres
MechPreconditioner = GaussSeidel;
MechEpsilon = 1e-8;
MechReduction = 1e-12;
MechSteps = 10000;
# === Newton Method === #
NewtonEpsilon = 1e-6;
NewtonReduction = 1e-12;
NewtonSteps = 30;
NewtonLineSearchSteps = 5;
NewtonLinearizationReduction = 1e-12;
Smoother = GaussSeidel;
#Smoother = SuperLU;
#SmootherDamp = 0.8;
presmoothing = 3;
postsmoothing = 3;
Overlap = NoOverlap
Overlap_Distribution = 0
DebugLevel = 0;
TimeLevel = 0;
#gnuplot = 1;
precision = 10;
\ No newline at end of file
# = Removes all files in the data folder upon start ======
ClearData = True
# ========================================================
# = Location of .geo files ===============================
GeoPath = ../geo/
# ========================================================
# = Parallelization for cardiac meshes need (plevel = 0) =
plevel = 0
# ========================================================
# ======================================
# = Choose Configuration for Problems =
# ======================================
# === Electrophysiology ================
loadconf = BiVentricleTest/test.conf
# ======================================
# = Default Solver Configuration Files =
loadconf = BiVentricleTest/solvers.conf;
loadconf = BiVentricleTest/cellmodels.conf
loadconf = BiVentricleTest/verbose.conf
# ======================================
ClearData = 1 # Removes existing plots from data folder.
Distribution=RCB
Model = Monodomain;
ElphyModel = SemiImplicit
ElphyProblem =VentricleProblem
# Spielt für diesen Test keine Rolle, nur beim Splitting (Iext splitted in PDE =1, Iext in ODE =0)
IextInPDE=1
ReassembleRHSonce=1
OrderStaggeredScheme=wcV
ExternalCurrentSmoothingInTime = Arctan;
#Glättung Anregung im Raum: discrete, linear
ExternalCurrentSmoothingInSpace =linear;
######################
# Meshes #
######################
ElphyPolynomialDegree = 1
StartTime = 0.0
EndTime=0.1
DeltaTime = 0.0001
DeltaTimeMin = 0.00001
DeltaTimeMax = 0.001
######################
# Elphy Parameters #
#####################
ElphyLevel = 0
ElphySubsteps = 1
ElphyMeshPart = ventriclesonly;
# Monodomain Parameters
SurfaceToVolumeRatio= 140;.
MembraneCapacitance=0.01;
IntraLongitudinal = 0.170;
ExtraLongitudinal = 0.620;
IntraTransversal = 0.019;
ExtraTransversal = 0.240;
CrankNicolsonTheta = 0.5
# Gerade nicht implementiert:
#can be set to ExplicitEuler, AdamsBashforth (second order)
#NumericalMethodForElphy=AdamsBashforth;
ElphyIntegrator=ExplicitEuler;
######################
# Plotting #
######################
PlotStress = 0
PlotVertexPotential = 1
#PlotCellPotential = 1
PrintVSteps =1
# vtk Dateien werden erstellt
PlotVTK = 0
PlottingSteps = 10000
TimeSeries = uniformabaqus;
EulerReAssemble = 0;
ConfigVerbose = 1
MeshVerbose = 2
AssembleVerbose = 1
# = Solver Verbose =
MultigridVerbose = 0
BaseSolverVerbose = -1
LinearVerbose = -5
NewtonVerbose = 1
EulerVerbose = 0
LinearImplicitVerbose = 5
ElphyLinearSolverVerbose =-1
MonodomainVerbose =1
NonLinearVerbose = -5
ElphySolverVerbose = 1
CoupledSolverVerbose = 2
CellModelVerbose = 10
# = Main Verbose =
ElphyVerbose = 1
MechVerbose = 1
# = Plot Verbose =
ElphySolverVTK = 1
CoupledSolverVTK = 1
PrestressPlotVerbose = 0
PressurePlotVerbose = 1
DynamicPlotVerbose = 1
PlotVTK = 1
......@@ -70,7 +70,7 @@ DeltaTimeMax = 0.001
######################
# Elphy Parameters #
#####################
ElphyLevel = 0
ElphyLevel = 1
ElphySubsteps = 1
ElphyMeshPart = ventriclesonly;
......@@ -103,7 +103,7 @@ PlotVertexPotential = 1
PrintVSteps =1
# vtk Dateien werden erstellt
PlotVTK=1
PlotVTK=0
PlottingSteps = 10
TimeSeries = uniformabaqus;
......
......@@ -28,6 +28,7 @@ void ElphyVentricleProblem::InitializeEvaluationPoints() {
evaluationPoints.emplace_back(Point(74.837097, -81.447998, -44.074902));// Apex excited left ventricle
evaluationPoints.emplace_back(Point(74.327103, -86.796303, -49.017601));//Apex midwall left ventricle
//all in one plane:
evaluationPoints.emplace_back(Point(39.611698, -83.080399, -34.947701));// Innenwand between ventricles bottom
evaluationPoints.emplace_back(Point(18.007799, -63.959301, -19.1492));// Innenwand between ventricles middle
evaluationPoints.emplace_back(Point(-0.33377, -44.208099, -7.27446));// Innenwand between ventricles top
......
import sys
sys.path.append('../../')
import os
import shutil
import mpp.python.mppy as mppy
lList = [1,2]
tList = [0,1]
start_dt=0.0001
path='../../data/BiVentricle/'
pathToMakeFolders='../'+path
def moveActivationtime(l,j, expPath):
shutil.move('../../build/data/vtu/ActivationTime.vtu', pathToMakeFolders+expPath+'AT_l'+str(l)+'j'+str(j))
def startExperiment(procs,startconf,pE,added=None):
checkIfFolderExists(pE)
mpp = mppy.Mpp(project_name='CardMech',executable='Elphy-M++',kernels=4,mute=False)
for l in lList:
for j in tList:
file = path+pE+'log_l'+str(l)+'j'+str(j)+'m1'
kwargs={"ElphyLevel": l,"DeltaTime":start_dt*2**(-j),"logfile":file,"EndTime":0.0001}
if added!=None:
kwargs.update(added)
mpp.run(procs, config=startconf, kwargs=kwargs) #replace 64 by hosts if necessary
moveActivationtime(l,j,pE)
def checkIfFolderExists(path):
folderPath =pathToMakeFolders+path
if not os.path.exists(folderPath):
os.makedirs(folderPath)
if __name__=="__main__":
procs=4
startconf="BiVentricleTest/start"
pathExperiment="SI0001/"
startExperiment(procs,startconf,pathExperiment)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment