Commit 3a667b20 authored by thomaskummer's avatar thomaskummer
Browse files

realistic heart geometry

parent 4c0cdfc1
......@@ -1646,6 +1646,7 @@ bool buildFaces ( MeshType& mesh,
}
if (! existingFacesMap_insert.second)
{
errorStream << point1Id << " " << point2Id << " " << point3Id << " " << jFaceId << std::endl;
errorStream << "ERROR in BuildFaces. Mesh stores two identical faces" << std::endl;
if ( !externalContainerIsProvided )
{
......
......@@ -12,7 +12,7 @@ TRIBITS_ADD_EXECUTABLE_AND_TEST(
)
TRIBITS_COPY_FILES_TO_BINARY_DIR(data_heart_test_fibers_data
SOURCE_FILES dataSingleVentricle dataXVentSingle dataSingleVentConv singleVentricle.mesh xVentSingle.mesh biVentCoarse.mesh biVentCoarsePatches.mesh biVentMediumPatches.mesh biVentMedium.mesh biVentFine.mesh singleVentConv.mesh siVent.mesh
SOURCE_FILES dataSingleVentricle dataXVentSingle dataSingleVentConv singleVentricle.mesh xVentSingle.mesh biVentCoarse.mesh biVentCoarsePatches.mesh biVentMediumPatches.mesh biVentMedium.mesh biVentFine.mesh singleVentConv.mesh siVent.mesh heartVCoa.mesh heartMed.mesh
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
)
......@@ -28,6 +28,12 @@ TRIBITS_COPY_FILES_TO_BINARY_DIR(dataBiVent
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
)
TRIBITS_COPY_FILES_TO_BINARY_DIR(dataHeart
CREATE_SYMLINK
SOURCE_FILES dataHeart
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
)
TRIBITS_COPY_FILES_TO_BINARY_DIR(dataSiVent
CREATE_SYMLINK
SOURCE_FILES dataSiVent
......
###################################################################################################
#
# This file is part of the LifeV Library
# Copyright (C) 2004, 2005, 2007 EPFL, Politecnico di Milano, INRIA
# Copyright (C) 2010 EPFL, Politecnico di Milano, Emory University
#
# Author(s): Simone Rossi <simone.rossi@epfl.ch>
# Date: 4-2014
# License Terms: GNU LGPL
#
###################################################################################################
### TESTSUITE: STRUCTURE MECHANICS ################################################################
###################################################################################################
#-------------------------------------------------
# Data file for Fiber construction
#-------------------------------------------------
[problem]
centerline_x = -48.1
centerline_y = 50 #72.3
centerline_z = -78.26
epi_angle =-60.0
endo_angle = 60.0
output_fiber_filename = FiberDirection
hdf5_fiber_name = fibers
output_sheets_filename = SheetsDirection
hdf5_sheets_name = sheets
[./boundary_conditions]
list = 'EndocardiumLV EndocardiumRV Septum SeptumEdgeBottom SeptumEdgeTop BaseSemilunar BaseAV Epicardium'
[./EndocardiumLV]
type = Essential
flag = 454
mode = Full
component = 1
function = '0.0'
[../EndocardiumRV]
type = Essential
flag = 455
mode = Full
component = 1
function = '0.0'
[../Septum]
type = Essential
flag = 456
mode = Full
component = 1
function = '1.0'
[../SeptumEdgeBottom]
type = Natural
flag = 457
mode = Full
component = 1
function = '0.0'
[../SeptumEdgeTop]
type = Natural
flag = 458
mode = Full
component = 1
function = '0.0'
[../AorticRing]
type = Essential
flag = 461
mode = Full
component = 1
function = '0.0'
[../MitralRing]
type = Essential
flag = 460
mode = Full
component = 1
function = '0.0'
[../TricuspidRing]
type = Essential
flag = 459
mode = Full
component = 1
function = '0.0'
[../BaseSemilunar]
type = Essential
flag = 462
mode = Full
component = 1
function = '1.0'
[../BaseAV]
type = Essential
flag = 463
mode = Full
component = 1
function = '1.0'
[../Epicardium]
type = Essential
flag = 464
mode = Full
component = 1
function = '1.0'
[../]
[../space_discretization]
mesh_dir = ./
mesh_file = heartVCoa.mesh
elem_type = P2
[../solver]
solver_name = AztecOO #Belos
solver = gmres
scaling = none
output = all # none
conv = rhs
max_iter = 500
reuse = true
max_iter_reuse = 250
kspace = 100
tol = 1.e-10 # AztecOO tolerance
orthog = 0
aux_vec = 0
[../prec]
prectype = ML #Ifpack # Ifpack or ML
displayList = true
xmlName = ParamList.xml #xmlParameters.xml
[./ML]
default_parameter_list = NSSA # Domain-decomposition
prec_type = MGV # Multigrid, single V-cycle
max_levels = 10
inc_or_dec = increasing
[./energy_minimization]
enable = true
type = 3
[../repartition]
enable = 1
max_min_ratio = 1.3
min_per_proc = 500
partitioner = ParMETIS #Zoltan: to be implemented
[../aggregation]
threshold = 0.01
nodes_per_aggregate = 32
[../coarse]
max_size = 10
type = 'self'
[../smoother]
type = 'symmetric Gauss-Seidel' # Gauss-Seidel smoother
sweeps = 1
pre_or_post = both
[../]
[../] # ML
[../ifpack]
overlap = 1
[./relaxation]
type = Jacobi
sweeps = 2
damping_factor = 1.
min_diagonal_value = 0
zero_starting_solution = true
[../partitioner]
type = metis
overlap = 1
local_parts = 1
root_node = 0
use_symmetric_graph = true
[../amesos]
solvertype = Amesos_Superludist # Amesos_KLU or Amesos_Umfpack
[../fact]
level-of-fill = 5
ilut_level-of-fill = 5
absolute_threshold = 0
relative_threshold = 1
relax_value = 0
drop_tolerance = 1.e-10
[../schwarz]
combine_mode = 0 # 0=Add, 1=Zero, 2=Insert, 3=Average, 4=AbsMax
compute_condest = false
reordering_type = none #none, metis, rcm
filter_singletons = true
[../]
[../]
#[../]
......@@ -26,5 +26,6 @@ ADD_SUBDIRECTORIES(
example_EMBiVent
example_EMBiVentMixed
example_EMSiVent
example_EMHeart
linear_solver_preconditioner
)
......@@ -44,6 +44,12 @@ SOURCE_FILES biVentCoarsePatchesP2
SOURCE_DIR ${CMAKE_SOURCE_DIR}/lifev/em/examples/example_EMBiVent
)
TRIBITS_COPY_FILES_TO_BINARY_DIR(heartVCoa
CREATE_SYMLINK
SOURCE_FILES heartVCoa
SOURCE_DIR ${CMAKE_SOURCE_DIR}/lifev/em/examples/example_EMBiVent
)
TRIBITS_COPY_FILES_TO_BINARY_DIR(biVentCoarsePatches
CREATE_SYMLINK
SOURCE_FILES biVentCoarsePatches
......
<?xml version="1.0" ?>
<!DOCTYPE Xdmf SYSTEM "FiberDirection.xdmf" [
<!ENTITY DataFile "FiberDirection.h5">
]>
<!-- FiberDirection.h5 is generated by LifeV -->
<Xdmf>
<Domain Name="FiberDirection">
<Grid Name="FiberDirectionGrid" GridType="Collection" CollectionType="Temporal">
<!-- Time 0 Iteration 00000 -->
<Grid Name="Mesh 0">
<Time TimeType="Single" Value="0" />
<Topology
Type="Tetrahedron"
NumberOfElements="30055"
BaseOffset="0">
<DataStructure Format="HDF"
Dimensions="30055 4"
DataType="Int"
Precision="8">
FiberDirection.h5:/Connections/Values
</DataStructure>
</Topology>
<Geometry Type="X_Y_Z">
<DataStructure Format="HDF"
Dimensions="8211"
DataType="Float"
Precision="8">
FiberDirection.h5:/PointsX.00000/Values
</DataStructure>
<DataStructure Format="HDF"
Dimensions="8211"
DataType="Float"
Precision="8">
FiberDirection.h5:/PointsY.00000/Values
</DataStructure>
<DataStructure Format="HDF"
Dimensions="8211"
DataType="Float"
Precision="8">
FiberDirection.h5:/PointsZ.00000/Values
</DataStructure>
</Geometry>
<Attribute
Type="Vector"
Center="Node"
Name="fibers">
<DataStructure ItemType="HyperSlab"
Dimensions="8211 3"
Type="HyperSlab">
<DataStructure Dimensions="3 2"
Format="XML">
0 0
1 1
8211 3
</DataStructure>
<DataStructure Format="HDF"
Dimensions="52732 3"
DataType="Float"
Precision="8">
FiberDirection.h5:/fibers.00000/Values
</DataStructure>
</DataStructure>
</Attribute>
</Grid>
</Grid>
</Domain>
</Xdmf>
<?xml version="1.0" ?>
<!DOCTYPE Xdmf SYSTEM "Potential.xdmf" [
<!ENTITY DataFile "Potential.h5">
]>
<!-- Potential.h5 is generated by LifeV -->
<Xdmf>
<Domain Name="Potential">
<Grid Name="PotentialGrid" GridType="Collection" CollectionType="Temporal">
<!-- Time 0 Iteration 00000 -->
<Grid Name="Mesh 0">
<Time TimeType="Single" Value="0" />
<Topology
Type="Tetrahedron"
NumberOfElements="30055"
BaseOffset="0">
<DataStructure Format="HDF"
Dimensions="30055 4"
DataType="Int"
Precision="8">
Potential.h5:/Connections/Values
</DataStructure>
</Topology>
<Geometry Type="X_Y_Z">
<DataStructure Format="HDF"
Dimensions="8211"
DataType="Float"
Precision="8">
Potential.h5:/PointsX.00000/Values
</DataStructure>
<DataStructure Format="HDF"
Dimensions="8211"
DataType="Float"
Precision="8">
Potential.h5:/PointsY.00000/Values
</DataStructure>
<DataStructure Format="HDF"
Dimensions="8211"
DataType="Float"
Precision="8">
Potential.h5:/PointsZ.00000/Values
</DataStructure>
</Geometry>
<Attribute
Type="Scalar"
Center="Node"
Name="potential">
<DataStructure ItemType="HyperSlab"
Dimensions="8211 1"
Type="HyperSlab">
<DataStructure Dimensions="3 2"
Format="XML">
0 0
1 1
8211 1
</DataStructure>
<DataStructure Format="HDF"
Dimensions="52732 1"
DataType="Float"
Precision="8">
Potential.h5:/potential.00000/Values
</DataStructure>
</DataStructure>
</Attribute>
</Grid>
</Grid>
</Domain>
</Xdmf>
<?xml version="1.0" ?>
<!DOCTYPE Xdmf SYSTEM "Projection.xdmf" [
<!ENTITY DataFile "Projection.h5">
]>
<!-- Projection.h5 is generated by LifeV -->
<Xdmf>
<Domain Name="Projection">
<Grid Name="ProjectionGrid" GridType="Collection" CollectionType="Temporal">
<!-- Time 0 Iteration 00000 -->
<Grid Name="Mesh 0">
<Time TimeType="Single" Value="0" />
<Topology
Type="Tetrahedron"
NumberOfElements="30055"
BaseOffset="0">
<DataStructure Format="HDF"
Dimensions="30055 4"
DataType="Int"
Precision="8">
Projection.h5:/Connections/Values
</DataStructure>
</Topology>
<Geometry Type="X_Y_Z">
<DataStructure Format="HDF"
Dimensions="8211"
DataType="Float"
Precision="8">
Projection.h5:/PointsX.00000/Values
</DataStructure>
<DataStructure Format="HDF"
Dimensions="8211"
DataType="Float"
Precision="8">
Projection.h5:/PointsY.00000/Values
</DataStructure>
<DataStructure Format="HDF"
Dimensions="8211"
DataType="Float"
Precision="8">
Projection.h5:/PointsZ.00000/Values
</DataStructure>
</Geometry>
<Attribute
Type="Vector"
Center="Node"
Name="projection">
<DataStructure ItemType="HyperSlab"
Dimensions="8211 3"
Type="HyperSlab">
<DataStructure Dimensions="3 2"
Format="XML">
0 0
1 1
8211 3
</DataStructure>
<DataStructure Format="HDF"
Dimensions="52732 3"
DataType="Float"
Precision="8">
Projection.h5:/projection.00000/Values
</DataStructure>
</DataStructure>
</Attribute>
</Grid>
</Grid>
</Domain>
</Xdmf>
<?xml version="1.0" ?>
<!DOCTYPE Xdmf SYSTEM "SheetsDirection.xdmf" [
<!ENTITY DataFile "SheetsDirection.h5">
]>
<!-- SheetsDirection.h5 is generated by LifeV -->
<Xdmf>
<Domain Name="SheetsDirection">
<Grid Name="SheetsDirectionGrid" GridType="Collection" CollectionType="Temporal">
<!-- Time 0 Iteration 00000 -->
<Grid Name="Mesh 0">
<Time TimeType="Single" Value="0" />
<Topology
Type="Tetrahedron"
NumberOfElements="30055"
BaseOffset="0">
<DataStructure Format="HDF"
Dimensions="30055 4"
DataType="Int"
Precision="8">
SheetsDirection.h5:/Connections/Values
</DataStructure>
</Topology>
<Geometry Type="X_Y_Z">
<DataStructure Format="HDF"
Dimensions="8211"
DataType="Float"
Precision="8">
SheetsDirection.h5:/PointsX.00000/Values
</DataStructure>
<DataStructure Format="HDF"
Dimensions="8211"
DataType="Float"
Precision="8">
SheetsDirection.h5:/PointsY.00000/Values
</DataStructure>
<DataStructure Format="HDF"
Dimensions="8211"
DataType="Float"
Precision="8">
SheetsDirection.h5:/PointsZ.00000/Values
</DataStructure>
</Geometry>
<Attribute
Type="Vector"
Center="Node"
Name="sheets">
<DataStructure ItemType="HyperSlab"
Dimensions="8211 3"
Type="HyperSlab">
<DataStructure Dimensions="3 2"
Format="XML">
0 0
1 1
8211 3
</DataStructure>
<DataStructure Format="HDF"
Dimensions="52732 3"
DataType="Float"
Precision="8">
SheetsDirection.h5:/sheets.00000/Values
</DataStructure>
</DataStructure>
</Attribute>
</Grid>
</Grid>
</Domain>
</Xdmf>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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