LifeV
|
MultiscaleModelFSI3D - Multiscale model for 3D FSI simulations. More...
#include <MultiscaleModelFSI3D.hpp>
Constructor & Destructor | |
MultiscaleModelFSI3D () | |
Constructor. More... | |
virtual | ~MultiscaleModelFSI3D () |
Destructor. More... | |
MultiscaleModel Methods | |
void | setupData (const std::string &fileName) |
Setup the data of the model. More... | |
void | setupModel () |
Setup the model. More... | |
void | buildModel () |
Build the initial model. More... | |
void | updateModel () |
Update the model. More... | |
void | solveModel () |
Solve the model. More... | |
void | updateSolution () |
Update the solution. More... | |
void | saveSolution () |
Save the solution. More... | |
void | showMe () |
Display some information about the model. More... | |
Real | checkSolution () const |
Return a specific scalar quantity to be used for a comparison with a reference value. More... | |
MultiscaleInterface Methods | |
void | imposeBoundaryFlowRate (const multiscaleID_Type &boundaryID, const function_Type &function) |
Impose the flow rate on a specific interface of the model. More... | |
void | imposeBoundaryMeanNormalStress (const multiscaleID_Type &boundaryID, const function_Type &function) |
Impose the integral of the mean normal stress on a specific boundary interface of the model. More... | |
void | imposeBoundaryMeanTotalNormalStress (const multiscaleID_Type &, const function_Type &) |
Impose the integral of the mean total normal stress on a specific boundary interface of the model. More... | |
void | imposeBoundaryArea (const multiscaleID_Type &boundaryID, const function_Type &function) |
Impose the area on a specific boundary interface of the model. More... | |
Real | boundaryFlowRate (const multiscaleID_Type &boundaryID) const |
Get the flow rate on a specific boundary interface of the model. More... | |
Real | boundaryMeanNormalStress (const multiscaleID_Type &boundaryID) const |
Get the integral of the mean normal stress on a specific boundary interface of the model. More... | |
Real | boundaryMeanTotalNormalStress (const multiscaleID_Type &boundaryID) const |
Get the integral of the mean total normal stress on a specific boundary interface of the model. More... | |
Real | boundaryArea (const multiscaleID_Type &boundaryID) const |
Get the area on a specific boundary interface of the model. More... | |
Real | boundaryDeltaFlowRate (const multiscaleID_Type &boundaryID, bool &solveLinearSystem) |
Get the variation of the flow rate (on a specific boundary interface) using the linear model. More... | |
Real | boundaryDeltaMeanNormalStress (const multiscaleID_Type &boundaryID, bool &solveLinearSystem) |
Get the variation of the integral of the mean normal stress (on a specific boundary interface) using the linear model. More... | |
Real | boundaryDeltaMeanTotalNormalStress (const multiscaleID_Type &boundaryID, bool &solveLinearSystem) |
Get the variation of the integral of the mean total normal stress (on a specific boundary interface) using the linear model. More... | |
Real | boundaryDeltaArea (const multiscaleID_Type &, bool &) |
Get the variation of the integral of the area (on a specific boundary interface) using the linear model. More... | |
Get Methods | |
bc_Type & | bcHandlerFluid () |
Get the FSI3D fluid bcHandler. More... | |
bc_Type & | bcHandlerSolid () |
Get the FSI3D solid bcHandler. More... | |
bcInterface_Type & | bcInterface () |
Get the BCInterface container of the boundary conditions of the model. More... | |
Real | boundaryDensity () const |
Get the density on a specific boundary face of the model. More... | |
Real | boundaryViscosity () const |
Get the viscosity on a specific boundary face of the model. More... | |
Real | boundaryPressure (const multiscaleID_Type &boundaryID) const |
Get the integral of the pressure (on a specific boundary face) More... | |
Real | boundaryTotalPressure (const multiscaleID_Type &boundaryID) const |
Get the integral of the total pressure (on a specific boundary face) More... | |
Real | externalPressure () const |
Get the external wall pressure. More... | |
const dataPtr_Type & | data () const |
Get the FSI3D data container. More... | |
const FSIOperatorPtr_Type & | solver () const |
Get the FSI3D operator. More... | |
Unimplemented Methods | |
MultiscaleModelFSI3D (const MultiscaleModelFSI3D &model) | |
MultiscaleModelFSI3D & | operator= (const MultiscaleModelFSI3D &model) |
Private Methods | |
void | setupGlobalData (const std::string &fileName) |
Setup the global data of the model. More... | |
void | initializeSolution () |
Initialize the FSI solution. More... | |
void | setupCommunicator () |
void | setupBC (const std::string &fileName) |
void | updateBC () |
void | setupExporter (IOFilePtr_Type &exporter, const GetPot &dataFile, const std::string &label="") |
void | setupImporter (IOFilePtr_Type &exporter, const GetPot &dataFile, const std::string &label="") |
void | setExporterFluid (const IOFilePtr_Type &exporter) |
void | setExporterSolid (const IOFilePtr_Type &exporter) |
void | exportFluidSolution () |
void | exportSolidSolution () |
void | setupLinearModel () |
Setup the linear model. More... | |
void | updateLinearModel () |
Update the linear system matrix and vectors. More... | |
void | solveLinearModel (bool &solveLinearSystem) |
Solve the linear problem. More... | |
void | imposePerturbation () |
Impose the coupling perturbation on the correct BC inside the BCHandler. More... | |
void | resetPerturbation () |
Reset all the coupling perturbations imposed on the BCHandler. More... | |
Real | bcFunctionDeltaZero (const Real &, const Real &, const Real &, const Real &, const UInt &) |
Real | bcFunctionDeltaOne (const Real &, const Real &, const Real &, const Real &, const UInt &) |
Additional Inherited Members | |
Public Types inherited from MultiscaleInterface | |
typedef std::function< Real(const Real &, const Real &, const Real &, const Real &, const ID &) > | function_Type |
Public Member Functions inherited from MultiscaleModel | |
MultiscaleModel () | |
The main constructor. More... | |
virtual | ~MultiscaleModel () |
Destructor. More... | |
void | clearCouplingsList () |
Clear the list of pointers to the couplings. More... | |
void | setID (const UInt &id) |
Set the global ID of the model. More... | |
void | setCouplingsNumber (const UInt &couplingsNumber) |
Set the number of couplings attached to this model. More... | |
void | setCoupling (const UInt &localCouplingID, const multiscaleCouplingPtr_Type &coupling) |
Add a pointer to one of the couplings attached to this model. More... | |
void | addCoupling (const multiscaleCouplingPtr_Type &coupling) |
Add a pointer to one of the couplings which couple the model. More... | |
void | setGlobalData (const multiscaleDataPtr_Type &globalData) |
Setup the global data of the model. More... | |
void | setGeometry (const std::array< Real, NDIM > &scale, const std::array< Real, NDIM > &rotate, const std::array< Real, NDIM > &translate) |
Scale, rotate and translate the Model in the 3D space. More... | |
void | setCommunicator (const multiscaleCommPtr_Type &comm) |
Set the epetra communicator for the model. More... | |
const UInt & | ID () const |
Get the global ID of the model. More... | |
const models_Type & | type () const |
Get the type of the model. More... | |
const multiscaleID_Type & | boundaryFlag (const multiscaleID_Type &boundaryID) const |
Get one available flag by id. More... | |
const std::string & | modelName () const |
Get the name of the model. More... | |
UInt | couplingsNumber () const |
Get the number of couplings connecting the model. More... | |
UInt | couplingLocalID (const UInt &ID) const |
Get the coupling local ID through global ID. More... | |
multiscaleCouplingPtr_Type | coupling (const UInt &localID) const |
Get the coupling through local ID. More... | |
const multiscaleDataPtr_Type & | globalData () const |
Get the global data of the model. More... | |
const multiscaleCommPtr_Type & | communicator () const |
Get the communicator of the model. More... | |
Public Member Functions inherited from MultiscaleInterface | |
MultiscaleInterface () | |
The main constructor. More... | |
virtual | ~MultiscaleInterface () |
Destructor. More... | |
Protected Member Functions inherited from MultiscaleModel | |
void | displayModelStatus (const std::string &tag) const |
Display model ID and name with a user provided tag. More... | |
Protected Attributes inherited from MultiscaleModel | |
UInt | M_ID |
models_Type | M_type |
multiscaleCouplingsContainer_Type | M_couplings |
std::string | M_modelName |
multiscaleIDContainer_Type | M_boundaryFlags |
multiscaleDataPtr_Type | M_globalData |
std::array< Real, NDIM > | M_geometryScale |
std::array< Real, NDIM > | M_geometryRotate |
std::array< Real, NDIM > | M_geometryTranslate |
multiscaleCommPtr_Type | M_comm |
MultiscaleModelFSI3D - Multiscale model for 3D FSI simulations.
Definition at line 119 of file MultiscaleModelFSI3D.hpp.
typedef FSIMonolithic FSIOperator_Type |
Definition at line 127 of file MultiscaleModelFSI3D.hpp.
typedef std::shared_ptr< FSIOperator_Type> FSIOperatorPtr_Type |
Definition at line 128 of file MultiscaleModelFSI3D.hpp.
typedef FSIOperator::data_Type data_Type |
Definition at line 130 of file MultiscaleModelFSI3D.hpp.
Definition at line 131 of file MultiscaleModelFSI3D.hpp.
typedef FSIOperator::mesh_Type mesh_Type |
Definition at line 133 of file MultiscaleModelFSI3D.hpp.
typedef FSIOperator::fluid_Type fluid_Type |
Definition at line 135 of file MultiscaleModelFSI3D.hpp.
typedef FSIOperator::solid_Type solid_Type |
Definition at line 136 of file MultiscaleModelFSI3D.hpp.
typedef FSIOperator::vector_Type vector_Type |
Definition at line 138 of file MultiscaleModelFSI3D.hpp.
Definition at line 139 of file MultiscaleModelFSI3D.hpp.
typedef Exporter< mesh_Type > IOFile_Type |
Definition at line 141 of file MultiscaleModelFSI3D.hpp.
typedef std::shared_ptr< IOFile_Type > IOFilePtr_Type |
Definition at line 142 of file MultiscaleModelFSI3D.hpp.
typedef ExporterData< mesh_Type > IOData_Type |
Definition at line 143 of file MultiscaleModelFSI3D.hpp.
typedef ExporterEnsight< mesh_Type > ensightIOFile_Type |
Definition at line 145 of file MultiscaleModelFSI3D.hpp.
typedef ExporterHDF5< mesh_Type > hdf5IOFile_Type |
Definition at line 147 of file MultiscaleModelFSI3D.hpp.
Definition at line 150 of file MultiscaleModelFSI3D.hpp.
typedef std::shared_ptr< bc_Type > bcPtr_Type |
Definition at line 151 of file MultiscaleModelFSI3D.hpp.
typedef BCInterface3D< bc_Type, FSIOperator > bcInterface_Type |
Definition at line 152 of file MultiscaleModelFSI3D.hpp.
typedef std::shared_ptr< bcInterface_Type > bcInterfacePtr_Type |
Definition at line 153 of file MultiscaleModelFSI3D.hpp.
Definition at line 156 of file MultiscaleModelFSI3D.hpp.
typedef std::shared_ptr< boundaryStressFunction_Type > boundaryStressFunctionPtr_Type |
Definition at line 157 of file MultiscaleModelFSI3D.hpp.
typedef std::vector< boundaryStressFunctionPtr_Type > boundaryStressFunctionContainer_Type |
Definition at line 158 of file MultiscaleModelFSI3D.hpp.
typedef std::vector< FSI3DBoundaryFlowRate_Type > boundaryFlowRateTypeContainer_Type |
Definition at line 172 of file MultiscaleModelFSI3D.hpp.
typedef std::map< multiscaleID_Type, FSI3DBoundaryFlowRate_Type > boundaryFlowRateMap_Type |
Definition at line 174 of file MultiscaleModelFSI3D.hpp.
Definition at line 176 of file MultiscaleModelFSI3D.hpp.
typedef std::shared_ptr< boundaryFlowRateFunction_Type > boundaryFlowRateFunctionPtr_Type |
Definition at line 177 of file MultiscaleModelFSI3D.hpp.
typedef std::vector< boundaryFlowRateFunctionPtr_Type > boundaryFlowRateFunctionsContainer_Type |
Definition at line 178 of file MultiscaleModelFSI3D.hpp.
typedef boundaryFlowRateFunctionsContainer_Type::iterator boundaryFlowRateFunctionsContainerIterator_Type |
Definition at line 179 of file MultiscaleModelFSI3D.hpp.
Definition at line 183 of file MultiscaleModelFSI3D.hpp.
typedef std::shared_ptr< boundaryAreaFunction_Type > boundaryAreaFunctionPtr_Type |
Definition at line 184 of file MultiscaleModelFSI3D.hpp.
typedef std::vector< boundaryAreaFunctionPtr_Type > boundaryAreaFunctionsContainer_Type |
Definition at line 185 of file MultiscaleModelFSI3D.hpp.
typedef boundaryAreaFunctionsContainer_Type::iterator boundaryAreaFunctionsContainerIterator_Type |
Definition at line 186 of file MultiscaleModelFSI3D.hpp.
Definition at line 190 of file MultiscaleModelFSI3D.hpp.
typedef std::shared_ptr< wallTensionEstimator_Type > wallTensionEstimatorPtr_Type |
Definition at line 191 of file MultiscaleModelFSI3D.hpp.
Definition at line 165 of file MultiscaleModelFSI3D.hpp.
|
explicit |
Constructor.
Definition at line 48 of file MultiscaleModelFSI3D.cpp.
|
inlinevirtual |
Destructor.
Definition at line 204 of file MultiscaleModelFSI3D.hpp.
|
private |
|
virtual |
Setup the data of the model.
fileName | Name of data file. |
Reimplemented from MultiscaleModel.
Definition at line 126 of file MultiscaleModelFSI3D.cpp.
|
virtual |
Setup the model.
Implements MultiscaleModel.
Definition at line 194 of file MultiscaleModelFSI3D.cpp.
|
virtual |
Build the initial model.
Implements MultiscaleModel.
Definition at line 256 of file MultiscaleModelFSI3D.cpp.
|
virtual |
Update the model.
Implements MultiscaleModel.
Definition at line 275 of file MultiscaleModelFSI3D.cpp.
|
virtual |
Solve the model.
Implements MultiscaleModel.
Definition at line 296 of file MultiscaleModelFSI3D.cpp.
|
virtual |
Update the solution.
Implements MultiscaleModel.
Definition at line 342 of file MultiscaleModelFSI3D.cpp.
|
virtual |
Save the solution.
Implements MultiscaleModel.
Definition at line 353 of file MultiscaleModelFSI3D.cpp.
|
virtual |
Display some information about the model.
Reimplemented from MultiscaleModel.
Definition at line 389 of file MultiscaleModelFSI3D.cpp.
|
virtual |
Return a specific scalar quantity to be used for a comparison with a reference value.
This method is meant to be used for night checks.
Implements MultiscaleModel.
Definition at line 414 of file MultiscaleModelFSI3D.cpp.
|
virtual |
Impose the flow rate on a specific interface of the model.
boundaryID | ID of the boundary interface |
function | boundary condition function |
Implements MultiscaleInterface.
Definition at line 423 of file MultiscaleModelFSI3D.cpp.
|
virtual |
Impose the integral of the mean normal stress on a specific boundary interface of the model.
boundaryID | ID of the boundary interface |
function | boundary condition function |
Implements MultiscaleInterface.
Definition at line 477 of file MultiscaleModelFSI3D.cpp.
|
inlinevirtual |
Impose the integral of the mean total normal stress on a specific boundary interface of the model.
Note: mean total normal stress cannot be imposed at the interfaces of this model.
boundaryID | ID of the boundary interface |
function | boundary condition function |
Implements MultiscaleInterface.
Definition at line 273 of file MultiscaleModelFSI3D.hpp.
|
virtual |
Impose the area on a specific boundary interface of the model.
Note: area cannot be imposed at the interfaces of this model.
boundaryID | ID of the boundary interface |
function | boundary condition function |
Implements MultiscaleInterface.
Definition at line 495 of file MultiscaleModelFSI3D.cpp.
|
inlinevirtual |
Get the flow rate on a specific boundary interface of the model.
boundaryID | ID of the boundary interface |
Implements MultiscaleInterface.
Definition at line 292 of file MultiscaleModelFSI3D.hpp.
|
virtual |
Get the integral of the mean normal stress on a specific boundary interface of the model.
boundaryID | ID of the boundary interface |
Implements MultiscaleInterface.
Definition at line 512 of file MultiscaleModelFSI3D.cpp.
|
virtual |
Get the integral of the mean total normal stress on a specific boundary interface of the model.
boundaryID | ID of the boundary interface |
Implements MultiscaleInterface.
Definition at line 522 of file MultiscaleModelFSI3D.cpp.
|
inlinevirtual |
Get the area on a specific boundary interface of the model.
boundaryID | ID of the boundary interface |
Implements MultiscaleInterface.
Definition at line 316 of file MultiscaleModelFSI3D.hpp.
|
virtual |
Get the variation of the flow rate (on a specific boundary interface) using the linear model.
boundaryID | ID of the boundary interface |
solveLinearSystem | a flag to which determine if the linear system has to be solved |
Implements MultiscaleInterface.
Definition at line 532 of file MultiscaleModelFSI3D.cpp.
|
virtual |
Get the variation of the integral of the mean normal stress (on a specific boundary interface) using the linear model.
boundaryID | ID of the boundary interface |
solveLinearSystem | a flag to which determine if the linear system has to be solved |
Implements MultiscaleInterface.
Definition at line 540 of file MultiscaleModelFSI3D.cpp.
|
virtual |
Get the variation of the integral of the mean total normal stress (on a specific boundary interface) using the linear model.
TODO The integral terms of the derivative of the area have not been coded yet. They are used only by the GI formulation.
boundaryID | ID of the boundary interface |
solveLinearSystem | a flag to which determine if the linear system has to be solved |
Implements MultiscaleInterface.
Definition at line 548 of file MultiscaleModelFSI3D.cpp.
|
inlinevirtual |
Get the variation of the integral of the area (on a specific boundary interface) using the linear model.
Note: returns always a NaN since this specific method is never used in the current interface equations.
boundaryID | ID of the boundary interface |
solveLinearSystem | a flag to which determine if the linear system has to be solved |
Implements MultiscaleInterface.
Definition at line 354 of file MultiscaleModelFSI3D.hpp.
|
inline |
Get the FSI3D fluid bcHandler.
Definition at line 369 of file MultiscaleModelFSI3D.hpp.
|
inline |
Get the FSI3D solid bcHandler.
Definition at line 378 of file MultiscaleModelFSI3D.hpp.
|
inline |
Get the BCInterface container of the boundary conditions of the model.
Definition at line 387 of file MultiscaleModelFSI3D.hpp.
|
inline |
Get the density on a specific boundary face of the model.
Definition at line 396 of file MultiscaleModelFSI3D.hpp.
|
inline |
Get the viscosity on a specific boundary face of the model.
Definition at line 405 of file MultiscaleModelFSI3D.hpp.
Real boundaryPressure | ( | const multiscaleID_Type & | boundaryID | ) | const |
Get the integral of the pressure (on a specific boundary face)
boundaryID | ID of the boundary interface |
Definition at line 559 of file MultiscaleModelFSI3D.cpp.
Real boundaryTotalPressure | ( | const multiscaleID_Type & | boundaryID | ) | const |
Get the integral of the total pressure (on a specific boundary face)
boundaryID | ID of the boundary interface |
Definition at line 569 of file MultiscaleModelFSI3D.cpp.
Real externalPressure | ( | ) | const |
Get the external wall pressure.
Definition at line 581 of file MultiscaleModelFSI3D.cpp.
|
inline |
Get the FSI3D data container.
Definition at line 434 of file MultiscaleModelFSI3D.hpp.
|
inline |
Get the FSI3D operator.
Definition at line 443 of file MultiscaleModelFSI3D.hpp.
|
private |
|
private |
Setup the global data of the model.
In particular, it replaces the default local values with the ones in the global container. If a value is already specified in the data file, do not perform the replacement.
fileName | File name of the specific model. |
Definition at line 594 of file MultiscaleModelFSI3D.cpp.
|
private |
Initialize the FSI solution.
Definition at line 648 of file MultiscaleModelFSI3D.cpp.
|
private |
Definition at line 776 of file MultiscaleModelFSI3D.cpp.
|
private |
Definition at line 788 of file MultiscaleModelFSI3D.cpp.
|
private |
Definition at line 813 of file MultiscaleModelFSI3D.cpp.
|
private |
Definition at line 834 of file MultiscaleModelFSI3D.cpp.
|
private |
Definition at line 852 of file MultiscaleModelFSI3D.cpp.
|
private |
Definition at line 870 of file MultiscaleModelFSI3D.cpp.
|
private |
Definition at line 884 of file MultiscaleModelFSI3D.cpp.
|
private |
Definition at line 916 of file MultiscaleModelFSI3D.cpp.
|
private |
Definition at line 932 of file MultiscaleModelFSI3D.cpp.
|
private |
Setup the linear model.
Definition at line 955 of file MultiscaleModelFSI3D.cpp.
|
private |
Update the linear system matrix and vectors.
Definition at line 986 of file MultiscaleModelFSI3D.cpp.
|
private |
Solve the linear problem.
Definition at line 999 of file MultiscaleModelFSI3D.cpp.
|
private |
Impose the coupling perturbation on the correct BC inside the BCHandler.
Definition at line 1026 of file MultiscaleModelFSI3D.cpp.
|
private |
Reset all the coupling perturbations imposed on the BCHandler.
Definition at line 1059 of file MultiscaleModelFSI3D.cpp.
|
inlineprivate |
Definition at line 506 of file MultiscaleModelFSI3D.hpp.
|
inlineprivate |
Definition at line 510 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 518 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 521 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 524 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 525 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 528 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 529 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 533 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 536 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 541 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 544 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 549 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 552 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 553 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 557 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 561 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 562 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 563 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 564 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 565 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 568 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 569 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 570 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 571 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 572 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 573 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 574 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 577 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 579 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 582 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 583 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 584 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 587 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 588 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 589 of file MultiscaleModelFSI3D.hpp.
|
private |
Definition at line 590 of file MultiscaleModelFSI3D.hpp.