44 #ifndef OneDFSIBCFunctionDefault_H 45 #define OneDFSIBCFunctionDefault_H 47 #include <lifev/one_d_fsi/function/OneDFSIFunction.hpp> 48 #include <lifev/one_d_fsi/solver/OneDFSIData.hpp> 49 #include <lifev/one_d_fsi/solver/OneDFSIFlux.hpp> 50 #include <lifev/one_d_fsi/solver/OneDFSISource.hpp> 197 typedef super::container2D_Type container2D_Type;
283 typedef super::container2D_Type container2D_Type;
355 const container2D_Type& deltaEigenvector,
const Real& timeStep );
373 return vector1[0] * vector2[0] + vector1[1] * vector2[1];
410 typedef super::fluxPtr_Type fluxPtr_Type;
411 typedef super::sourcePtr_Type sourcePtr_Type;
412 typedef super::solutionPtr_Type solutionPtr_Type;
475 return M_fluxPtr->physics()->externalPressure();
496 typedef super::fluxPtr_Type fluxPtr_Type;
497 typedef super::sourcePtr_Type sourcePtr_Type;
498 typedef super::solutionPtr_Type solutionPtr_Type;
542 return M_fluxPtr->physics()->venousPressure();
587 typedef super::fluxPtr_Type fluxPtr_Type;
588 typedef super::sourcePtr_Type sourcePtr_Type;
589 typedef super::solutionPtr_Type solutionPtr_Type;
608 const Real& resistance1,
const Real& resistance2,
609 const Real& compliance,
610 const bool& absorbing =
false,
611 const Real& venousPressure = 6666. );
container2D_Type M_deltaEigenvalues
void setFluxSource(const fluxPtr_Type &fluxPtr, const sourcePtr_Type &sourcePtr)
Set the flux and the source classes for the problem.
Real computeCFL(const Real &eigenvalue, const Real &timeStep) const
Compute the current CFL.
std::array< vectorPtr_Type, 2 > vectorPtrContainer_Type
RegionMesh< LinearLine > mesh_Type
OneDFSIFunctionSolverDefinedCompatibility(const bcSide_Type &bcSide, const bcType_Type &bcType)
Constructor.
OneDFSIFunctionSolverDefinedAbsorbing - Class which implements absorbing boundary conditions for the ...
UInt M_bcElement
ID of the boundary edge.
Real venousPressure()
Venous pressure.
void setSolution(const solutionPtr_Type &solutionPtr)
Set the solution of the problem.
OneDFSIFunctionSolverDefinedWindkessel3(const bcSide_Type &bcSide, const bcType_Type &bcType, const Real &resistance1, const Real &resistance2, const Real &compliance, const bool &absorbing=false, const Real &venousPressure=6666.)
Constructor.
Real operator()(const Real &time, const Real &timeStep)
Operator()
container2D_Type M_bcW
Value of W at the boundary.
virtual Real operator()(const Real &time, const Real &timeStep)
Operator()
OneDFSIData - Class which read and holds all the data for the One Dimensional Model Solver...
virtual ~OneDFSIFunctionSolverDefined()
Destructor.
UInt M_bcInternalNode
Dof of the internal node adjacent to the boundary.
MatrixEpetra< Real > matrix_type
void resistance(Real &resistance)
Set the value of the resistance.
OneDFSIFlux - Base class for the flux term of the 1D hyperbolic problem.
virtual ~OneDFSIFunctionSolverDefinedResistance()
Destructor.
container2D_Type M_deltaLeftEigenvector1
virtual void resistance(Real &)
Set the value of the resistance.
OneDFSISource - Base class for the source term of the 1D hyperbolic problem.
OneDFSISource source_Type
std::shared_ptr< flux_Type > fluxPtr_Type
container2D_Type M_leftEigenvector1
Left eigen vectors for the two eigen values.
linearSolver_Type::matrix_type matrix_Type
void updateInverseJacobian(const UInt &iQuadPt)
virtual Real venousPressure()
Venous pressure.
OneDFSIFunction - Base class for 1D BC Functions.
OneDFSIFunctionSolverDefinedWindkessel3 - Class which implements windkessel RCR boundary conditions f...
OneDFSIFunctionSolverDefinedCompatibility super
virtual Real operator()(const Real &time, const Real &timeStep)
Operator()
Real computeRHS(const Real &timeStep)
Compute the rhs.
OneDFSIFunctionSolverDefinedCompatibility super
Real operator()(const Real &time, const Real &timeStep)
Operator()
solutionPtr_Type M_solutionPtr
OneDFSIFunction bcFunction_Type
OneDFSIFunctionSolverDefined super
OneDFSIFunctionSolverDefined(const OneDFSIFunctionSolverDefined &bcFunctionDefault)
Copy constructor.
OneDFSIFunctionSolverDefinedResistance - Class which implements resistance boundary conditions for th...
Real evaluateRHS(const Real &eigenvalue, const container2D_Type &eigenvector, const container2D_Type &deltaEigenvector, const Real &timeStep)
Compute the rhs.
OneDFSIFunctionSolverDefinedRiemann(const OneDFSIFunctionSolverDefinedRiemann &bcFunctionRiemann)
Copy constructor.
OneDFSIFunctionSolverDefinedResistance(const OneDFSIFunctionSolverDefinedResistance &bcFunctionResistance)
Copy constructor.
OneDFSIFunctionSolverDefinedCompatibility - Class which implements Compatibility boundary conditions ...
OneDFSIFunctionSolverDefinedAbsorbing(const OneDFSIFunctionSolverDefinedAbsorbing &bcFunctionAbsorbing)
Copy constructor.
void setupNode()
Automatically identify the boundary node.
OneDFSIFunctionSolverDefined(const bcSide_Type &bcSide, const bcType_Type &bcType)
Constructor.
container2D_Type M_eigenvalues
Eigen values of the jacobian diffFlux (= dF/dU = H)
sourcePtr_Type M_sourcePtr
OneDFSIFunctionSolverDefinedCompatibility(const OneDFSIFunctionSolverDefinedCompatibility &bcFunctionCompatibility)
Copy constructor.
std::shared_ptr< bcFunction_Type > bcFunctionPtr_Type
SolverAmesos - Class to wrap linear solver.
container2D_Type M_deltaLeftEigenvector2
virtual Real operator()(const Real &, const Real &timeStep)
Operator()
virtual ~OneDFSIFunctionSolverDefinedRiemann()
Destructor.
OneDFSIFunctionSolverDefinedRiemann super
double Real
Generic real data.
std::array< Real, 2 > container2D_Type
virtual ~OneDFSIFunctionSolverDefinedAbsorbing()
Destructor.
std::shared_ptr< solution_Type > solutionPtr_Type
virtual ~OneDFSIFunctionSolverDefinedCompatibility()
Destructor.
OneDFSIModelBCFunctionDefault - Base class for deriving specific 1D boundary functions.
std::shared_ptr< source_Type > sourcePtr_Type
void updateBCVariables()
Update the boundary condition variables.
virtual void setupNode()
Automatically identify the boundary node.
std::shared_ptr< vector_Type > vectorPtr_Type
linearSolver_Type::vector_type vector_Type
OneDFSIFunctionSolverDefinedResistance(const bcSide_Type &bcSide, const bcType_Type &bcType, const Real &resistance)
Constructor.
OneDFSIFunctionSolverDefinedAbsorbing(const bcSide_Type &bcSide, const bcType_Type &bcType)
Constructor.
OneDFSIFunctionSolverDefinedWindkessel3(const OneDFSIFunctionSolverDefinedWindkessel3 &bcFunctionWindkessel3)
Copy constructor.
OneDFSIFunctionSolverDefinedRiemann(const bcSide_Type &bcSide, const bcType_Type &bcType)
Constructor.
std::map< std::string, vectorPtr_Type > solution_Type
void computeEigenValuesVectors()
Compute the current eigenvalues and eigenvectors.
OneDFSIFunctionSolverDefinedAbsorbing super
Real scalarProduct(const container2D_Type &vector1, const container2D_Type &vector2)
Scalar product between 2 2D vectors.
virtual ~OneDFSIFunctionSolverDefinedWindkessel3()
Destructor.
container2D_Type M_bcU
Value of U at the boundary.
uint32_type UInt
generic unsigned integer (used mainly for addressing)
SolverAmesos linearSolver_Type
OneDFSIFunctionSolverDefinedRiemann - Class which implements Riemann boundary conditions for the 1D s...
container2D_Type M_leftEigenvector2