4 #include "com_devel.hpp"
5 #include "SolverAgent.H"
6 #include "InterfaceLayer.H"
9 #include "dynamicFvMesh.H"
11 #include "constitutiveModel.H"
12 #include "solidTractionFvPatchVectorField.H"
13 #include "volPointInterpolation.H"
14 #include "pointPatchInterpolation.H"
16 #include "patchToPatchInterpolation.H"
17 #include "movingWallVelocityFvPatchVectorField.H"
19 #include "tetFemMatrices.H"
20 #include "tetPointFields.H"
21 #include "faceTetPolyPatch.H"
22 #include "tetPolyPatchInterpolation.H"
23 #include "fixedValueTetPolyPatchFields.H"
24 #include "fixedValuePointPatchFields.H"
27 #include "EulerDdtScheme.H"
28 #include "backwardDdtScheme.H"
30 #include "pointFields.H"
31 #include "fixedGradientFvPatchFields.H"
32 #include "primitivePatchInterpolation.H"
33 #include "twoDPointCorrector.H"
34 #include "scalarIOField.H"
35 #include "leastSquaresVolPointInterpolation.H"
36 #include "symmetryPolyPatch.H"
38 class fsifoam_module :
public COM_Object ,
public SolverUtils::FEM::SolverAgent
208 void InitFoam(
int *pargc,
void **pargv,
int *verbIn);
213 static void Load(
const std::string &name);
214 static void Unload(
const std::string &name);
224 volScalarField &
p(){
return(*
pPtr);};
225 volVectorField &
U(){
return(*
UPtr);};
239 volTensorField &
F(){
return(*
FPtr);};
241 volScalarField &
J(){
return(*
JPtr);};
260 solidTractionFvPatchVectorField &
tForce(){
261 return(refCast<solidTractionFvPatchVectorField>(
DUPtr->boundaryField()[
solidPatchID]));};
dimensionedScalar * rhoFluidPtr
void UpdateFSISurfaceData()
Update the data registered on the FSI surface.
void StepFoam()
the OpenFOAM stepping
std::vector< double > endTime
std::vector< double > surfaceDisplacement
autoPtr< dynamicFvMesh > meshPtr
volTensorField * gradDUPtr
std::vector< double > surfaceCoordinates
void InitFoam(int *pargc, void **pargv, int *verbIn)
function to register through IMPACT
solidTractionFvPatchVectorField & tForce()
zoneToZoneInterpolation * interpolatorSolidFluidPtr
zoneToZoneInterpolation & interpFluidSolid()
Foam::argList & ArgList()
int UpdateFSISurface(Foam::vectorField &solidPatchPointsDispl)
Update the nodal coordinates of the IMAPCT and OpenFoam FSI surfaces from the IMPACT displacement dat...
IOdictionary & TransportProperties()
void UpdateTime()
Update the time control data registered with OpenFOAM i.e.
scalar outerCorrTolerance
IOdictionary * couplingPropertiesPtr
std::map< int, int > interfaceToFoamNodeMap
static void Load(const std::string &name)
"Loads" IcoFoamModule
labelListList globalToLocalFaceZonePointMap
static void Unload(const std::string &name)
Unloads the IcoFoamModule.
zoneToZoneInterpolation & interpSolidFluid()
volSymmTensorField * sigmaPtr
vectorField & AccumulatedFluidInterfaceDisplacements()
IOobject * accumulatedFluidInterfaceDisplacementHeaderPtr
void RunFoam()
the OpenFOAM main
volScalarField & rhoSolid()
IOdictionary * dynamicMeshDictPtr
int numPointsSurface
Tracks this window name.
std::vector< unsigned int > surfaceConnectivity
volSymmTensorField * DSigmaPtr
labelListList & GlobalToLocalFaceZonePointMap()
std::vector< int > initStatus
IOdictionary * transportPropertiesPtr
constitutiveModel * rheologyPtr
scalar & FSIRelaxationFactorMin()
scalar & CumulativeContErr()
std::vector< double > surfacePressure
scalar & FSIRelaxationFactor()
int Initialize(int argc, char *argv[])
std::string my_window_name
std::vector< double > solidDisplacement
volScalarField * lambdaPtr
volTensorField & gradDU()
surfaceScalarField & phi()
fsifoam_module(int argc, char *argv[])
volSymmTensorField & DSigma()
std::vector< double > time
pointPatchInterpolation * patchPointInterpolatorPtr
std::map< int, int > surfaceNodeMap
dynamicFvMesh & FluidMesh()
scalar & InterfaceDeformationLimit()
zoneToZoneInterpolation * interpolatorFluidSolidPtr
pointVectorField * pointDUPtr
pointMesh * pStressMeshPtr
void StepFluid()
the OpenFOAM stepping fluid alone
void UpdateFSISurfaceMesh()
Update of the surface mesh data coordinates.
int CreateInterZoneInterpolators()
std::vector< int > runStatus
void CreateFSISurfaceMesh()
Initialization of the surface mesh data structures from the OpenFOAM mesh data structures.
int InitTransportProperties()
labelList globalFaceZones
volVectorField * UsolidPtr
int ReadCouplingProperties()
volVectorField & Usolid()
pointMesh & pStressMesh()
volScalarField & lambda()
constitutiveModel & Rheology()
labelList & GlobalFaceZones()
scalar interfaceDeformationLimit
surfaceScalarField * phiPtr
std::vector< double > deltaTime
dimensionedScalar & rhoFluid()
vectorField * accumulatedFluidInterfaceDisplacementPtr
int CreateStructuresFields()
std::map< int, int > foamGlobalToPatchNodeMap
dimensionedScalar * nuPtr
int FindGlobalFaceZones()
pointVectorField & PointDU()
scalar & OuterCorrTolerance()
fvMesh & StructuresMesh()
std::vector< double > surfaceTraction
volSymmTensorField & sigma()
scalar fsiRelaxationFactor
scalar fsiRelaxationFactorMin
IOdictionary & CouplingProperties()