LifeV
|
MeshPartitionerOfflineFSI - Offline mesh partitioning for FSI. More...
#include <MeshPartitionerOfflineFSI.hpp>
Private Member Functions | |
MeshPartitionerOfflineFSI (const MeshPartitionerOfflineFSI &) | |
MeshPartitionerOfflineFSI & | operator= (const MeshPartitionerOfflineFSI &) |
MeshPartitionerOfflineFSI (const MeshPartitionerOfflineFSI &) | |
MeshPartitionerOfflineFSI & | operator= (const MeshPartitionerOfflineFSI &) |
Constructor & Destructor | |
MeshPartitionerOfflineFSI () | |
Empty Constructor. More... | |
virtual | ~MeshPartitionerOfflineFSI () |
Destructor. More... | |
MeshPartitionerOfflineFSI (const uncutMeshPtr_Type &uncutFluidMesh, const uncutMeshPtr_Type &uncutSolidMesh, const Int fluidPartitionNumber, const Int solidPartitionNumber, const std::string velocityOrder, const std::string displacementOrder, const markerID_Type fluidInterfaceFlag, const markerID_Type solidInterfaceFlag, const Real interfaceTolerance, const Int fluidInterfaceVertexFlag, const Int solidInterfaceVertexFlag, const commPtr_Type &comm) | |
Constructor. More... | |
virtual | ~MeshPartitionerOfflineFSI () |
Destructor. More... | |
Methods | |
void | setup (const uncutMeshPtr_Type &uncutFluidMesh, const uncutMeshPtr_Type &uncutSolidMesh, const Int &fluidPartitionNumber, const Int &solidPartitionNumber, const std::string &velocityOrder, const std::string &displacementOrder, const markerID_Type &fluidInterfaceFlag, const markerID_Type &solidInterfaceFlag, const Real &interfaceTolerance, const Int &fluidInterfaceVertexFlag, const Int &solidInterfaceVertexFlag, const commPtr_Type &comm) |
Setup the data members of the class after construction. More... | |
void | execute () |
Execute the partitioning and create the interface map. More... | |
void | showMe (std::ostream &output=std::cout) const |
Display general information about the content of the class. More... | |
void | showMe (std::ostream &output=std::cout) const |
Display general information about the content of the class. More... | |
Get Methods | |
const markerID_Type & | fluidInterfaceFlag () const |
const markerID_Type & | solidInterfaceFlag () const |
const graphPtr_Type & | fluidGraph () const |
const graphPtr_Type & | solidGraph () const |
const uncutMeshVectorPtr_Type & | fluidPartitions () const |
const uncutMeshVectorPtr_Type & | solidPartitions () const |
const interfaceVectorPtr_Type & | dofStructureToHarmonicExtension () const |
const markerID_Type | fluidInterfaceFlag () const |
const markerID_Type | solidInterfaceFlag () const |
const graphPtr_Type & | fluidGraph () const |
const graphPtr_Type & | solidGraph () const |
const uncutMeshVectorPtr_Type & | fluidPartitions () const |
const uncutMeshVectorPtr_Type & | solidPartitions () const |
const interfaceVectorPtr_Type & | dofStructureToHarmonicExtension () const |
Private Methods | |
void | runTheCutters () |
Create the MeshPartitioner objects for fluid and solid. More... | |
void | createSpaces () |
Create the finite element spaces. More... | |
void | mapTheInterface () |
Create the interface map between fluid and solid. More... | |
void | runTheCutters () |
Create the MeshPartitioner objects for fluid and solid. More... | |
void | createSpaces () |
Create the finite element spaces. More... | |
void | mapTheInterface () |
Create the interface map between fluid and solid. More... | |
MeshPartitionerOfflineFSI - Offline mesh partitioning for FSI.
This class handles the offline partitioning for FSI simulations. It cuts the two unpartitioned meshes for the fluid and the solid into a set number of partitions for each. It also generates the map of the degrees of freedom at the interface between the two materials.
Usage: create object call setup(...) method call execute() method
Definition at line 67 of file mesh/MeshPartitionerOfflineFSI.hpp.
Definition at line 73 of file mesh/MeshPartitionerOfflineFSI.hpp.
typedef MeshType uncutMesh_Type |
Definition at line 74 of file mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::shared_ptr<uncutMesh_Type> uncutMeshPtr_Type |
Definition at line 75 of file mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::vector<uncutMeshPtr_Type> uncutMeshVector_Type |
Definition at line 76 of file mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::shared_ptr<uncutMeshVector_Type> uncutMeshVectorPtr_Type |
Definition at line 77 of file mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::vector<std::vector<Int> > graph_Type |
Definition at line 79 of file mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::shared_ptr<graph_Type> graphPtr_Type |
Definition at line 80 of file mesh/MeshPartitionerOfflineFSI.hpp.
typedef Epetra_Comm comm_Type |
Definition at line 82 of file mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::shared_ptr<comm_Type> commPtr_Type |
Definition at line 83 of file mesh/MeshPartitionerOfflineFSI.hpp.
typedef FESpace<uncutMesh_Type, MapEpetra> feSpace_Type |
Definition at line 85 of file mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::shared_ptr<feSpace_Type> feSpacePtr_Type |
Definition at line 86 of file mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::vector<feSpacePtr_Type> feSpaceVector_Type |
Definition at line 87 of file mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::shared_ptr<feSpaceVector_Type> feSpaceVectorPtr_Type |
Definition at line 88 of file mesh/MeshPartitionerOfflineFSI.hpp.
typedef DOFInterface3Dto3D interface_Type |
Definition at line 90 of file mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::shared_ptr<interface_Type> interfacePtr_Type |
Definition at line 91 of file mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::vector<interfacePtr_Type> interfaceVector_Type |
Definition at line 92 of file mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::shared_ptr<interfaceVector_Type> interfaceVectorPtr_Type |
Definition at line 96 of file mesh/MeshPartitionerOfflineFSI.hpp.
typedef MeshPartitioner<uncutMesh_Type> meshCutter_Type |
Definition at line 98 of file mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::unique_ptr<meshCutter_Type> meshCutterPtr_Type |
Definition at line 99 of file mesh/MeshPartitionerOfflineFSI.hpp.
Definition at line 74 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
typedef MeshType uncutMesh_Type |
Definition at line 75 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::shared_ptr<uncutMesh_Type> uncutMeshPtr_Type |
Definition at line 76 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::vector<uncutMeshPtr_Type> uncutMeshVector_Type |
Definition at line 77 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::shared_ptr<uncutMeshVector_Type> uncutMeshVectorPtr_Type |
Definition at line 78 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::vector<std::vector<Int> > graph_Type |
Definition at line 80 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::shared_ptr<graph_Type> graphPtr_Type |
Definition at line 81 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
typedef Epetra_Comm comm_Type |
Definition at line 83 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::shared_ptr<comm_Type> commPtr_Type |
Definition at line 84 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
typedef FESpace<uncutMesh_Type, MapEpetra> feSpace_Type |
Definition at line 86 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::shared_ptr<feSpace_Type> feSpacePtr_Type |
Definition at line 87 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::vector<feSpacePtr_Type> feSpaceVector_Type |
Definition at line 88 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::shared_ptr<feSpaceVector_Type> feSpaceVectorPtr_Type |
Definition at line 89 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
typedef DOFInterface3Dto3D interface_Type |
Definition at line 91 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::shared_ptr<interface_Type> interfacePtr_Type |
Definition at line 92 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::vector<interfacePtr_Type> interfaceVector_Type |
Definition at line 93 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::shared_ptr<interfaceVector_Type> interfaceVectorPtr_Type |
Definition at line 97 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
typedef MeshPartitioner<uncutMesh_Type> meshCutter_Type |
Definition at line 99 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
typedef std::shared_ptr<meshCutter_Type> meshCutterPtr_Type |
Definition at line 100 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
|
inline |
Empty Constructor.
Definition at line 107 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
inlinevirtual |
Destructor.
Definition at line 110 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
MeshPartitionerOfflineFSI | ( | const uncutMeshPtr_Type & | uncutFluidMesh, |
const uncutMeshPtr_Type & | uncutSolidMesh, | ||
const Int | fluidPartitionNumber, | ||
const Int | solidPartitionNumber, | ||
const std::string | velocityOrder, | ||
const std::string | displacementOrder, | ||
const markerID_Type | fluidInterfaceFlag, | ||
const markerID_Type | solidInterfaceFlag, | ||
const Real | interfaceTolerance, | ||
const Int | fluidInterfaceVertexFlag, | ||
const Int | solidInterfaceVertexFlag, | ||
const commPtr_Type & | comm | ||
) |
Constructor.
Constructor which configures the MeshPartitionerOfflineFSI object
uncutFluidMesh | const std::shared_ptr to the unpartitioned fluid mesh |
uncutSolidMesh | const std::shared_ptr to the unpartitioned solid mesh |
fluidPartitionNumber | Int |
solidPartitionNumber | Int |
velocityOrder | std::string |
displacementOrder | std::string |
fluidInterfaceFlag | LifeV::MarkerIDStandardPolicy::markerID_Type (Int) |
solidInterfaceFlag | LifeV::MarkerIDStandardPolicy::markerID_Type (Int) |
interfaceTolerance | Real |
fluidInterfaceVertexFlag | Int |
comm | std::shared_ptr to a Epetra_Comm object |
Definition at line 281 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
|
inlinevirtual |
Destructor.
Definition at line 138 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
void setup | ( | const uncutMeshPtr_Type & | uncutFluidMesh, |
const uncutMeshPtr_Type & | uncutSolidMesh, | ||
const Int & | fluidPartitionNumber, | ||
const Int & | solidPartitionNumber, | ||
const std::string & | velocityOrder, | ||
const std::string & | displacementOrder, | ||
const markerID_Type & | fluidInterfaceFlag, | ||
const markerID_Type & | solidInterfaceFlag, | ||
const Real & | interfaceTolerance, | ||
const Int & | fluidInterfaceVertexFlag, | ||
const Int & | solidInterfaceVertexFlag, | ||
const commPtr_Type & | comm | ||
) |
Setup the data members of the class after construction.
This methods is called to configure the MeshPartitionerOfflineFSI object after it is constructed.
uncutFluidMesh | const std::shared_ptr to the unpartitioned fluid mesh |
uncutSolidMesh | const std::shared_ptr to the unpartitioned solid mesh |
fluidPartitionNumber | Int |
solidPartitionNumber | Int |
velocityOrder | std::string |
displacementOrder | std::string |
fluidInterfaceFlag | LifeV::MarkerIDStandardPolicy::markerID_Type (Int) |
solidInterfaceFlag | LifeV::MarkerIDStandardPolicy::markerID_Type (Int) |
interfaceTolerance | Real |
fluidInterfaceVertexFlag | Int |
comm | std::shared_ptr to a Epetra_Comm object |
Definition at line 296 of file mesh/MeshPartitionerOfflineFSI.hpp.
void execute | ( | ) |
Execute the partitioning and create the interface map.
This is a wrapper method that calls the following private methods: runTheCutters(), createSpaces(), mapTheInterface()
Definition at line 353 of file mesh/MeshPartitionerOfflineFSI.hpp.
void showMe | ( | std::ostream & | output = std::cout | ) | const |
Display general information about the content of the class.
Displays the current value of the data members.
output | std::ostream - stream used for output |
Definition at line 366 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
inline |
Definition at line 165 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
inline |
Definition at line 169 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
inline |
Definition at line 173 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
inline |
Definition at line 177 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
inline |
Definition at line 181 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
inline |
Definition at line 186 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
inline |
Definition at line 196 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
|
private |
Create the MeshPartitioner objects for fluid and solid.
Allocate the MeshPartitioner objects for the fluid and solid and execute the partitioning of the two materials
Definition at line 410 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Create the finite element spaces.
This method creates the finite element spaces necessary for the offline partitioning: one FE space for the uncut solid mesh and one FE space for each of the fluid mesh partitions.
Definition at line 424 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Create the interface map between fluid and solid.
This method creates the interface map between the two regions. One interface map is created between each of the fluid partitions and the solid uncut mesh
Definition at line 509 of file mesh/MeshPartitionerOfflineFSI.hpp.
void showMe | ( | std::ostream & | output = std::cout | ) | const |
Display general information about the content of the class.
Displays the current value of the data members.
output | std::ostream - stream used for output |
|
inline |
Definition at line 153 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
|
inline |
Definition at line 157 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
|
inline |
Definition at line 161 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
|
inline |
Definition at line 165 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
|
inline |
Definition at line 169 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
|
inline |
Definition at line 174 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
|
inline |
Definition at line 184 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
|
private |
Create the MeshPartitioner objects for fluid and solid.
Allocate the MeshPartitioner objects for the fluid and solid and execute the partitioning of the two materials
|
private |
Create the finite element spaces.
This method creates the finite element spaces necessary for the offline partitioning: one FE space for the uncut solid mesh and one FE space for each of the fluid mesh partitions.
|
private |
Create the interface map between fluid and solid.
This method creates the interface map between the two regions. One interface map is created between each of the fluid partitions and the solid uncut mesh
|
private |
Definition at line 255 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 257 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 258 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 260 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 262 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 263 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 265 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 266 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 268 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 269 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 271 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 272 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 274 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 275 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 277 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 278 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 280 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 281 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 282 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 283 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 284 of file mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 250 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.
|
private |
Definition at line 251 of file blocks/mesh/MeshPartitionerOfflineFSI.hpp.