28 #include <EpetraExt_MatrixMatrix.h> 30 #include <lifev/fsi/solver/MonolithicBlockMatrixRN.hpp> 41 void MonolithicBlockMatrixRN::setDataFromGetPot (
const GetPot& data,
const std::string& section )
43 super_Type::setDataFromGetPot (data, section);
44 setRobinData (data, section +
"/robin");
47 void MonolithicBlockMatrixRN::coupler (mapPtr_Type& map,
48 const std::map<ID, ID>& locDofMap,
49 const vectorPtr_Type& numerationInterface,
51 const Real& coefficient,
52 const Real& rescaleFactor,
56 super_Type::coupler ( map, locDofMap, numerationInterface, timeStep , coefficient, rescaleFactor, couplingFlag);
59 void MonolithicBlockMatrixRN::coupler (mapPtr_Type& map,
60 const std::map<ID, ID>& locDofMap,
61 const vectorPtr_Type& numerationInterface,
63 const Real& coefficient,
64 const Real& rescaleFactor)
66 super_Type::coupler (map, locDofMap, numerationInterface, timeStep, coefficient, rescaleFactor);
67 M_robinCoupling.reset (
new matrix_Type (M_coupling->map(), 0) );
68 robinCoupling ( M_robinCoupling, M_alphaf, M_alphas, 7, M_FESpace[1], M_offset[1], M_FESpace[0], M_offset[0], locDofMap, numerationInterface );
69 M_robinCoupling->globalAssemble( );
73 void MonolithicBlockMatrixRN::GlobalAssemble()
75 super_Type::GlobalAssemble();
76 vector_Type rhs ( (*M_robinCoupling) * (*M_rhsVec) );
80 void MonolithicBlockMatrixRN::blockAssembling()
82 M_coupling->globalAssemble();
83 M_globalMatrix.reset (
new matrix_Type (M_coupling->map() ) );
84 *M_globalMatrix += *M_coupling;
85 for (UInt k = 0; k < super_Type::M_blocks.size(); ++k)
87 super_Type::M_blocks[k]->globalAssemble();
90 applyRobinCoupling (M_blocks);
91 M_robinPart->globalAssemble();
93 matrixPtr_Type fluidRobinBlock (
new matrix_Type (M_robinCoupling->map(), 1) );
94 *fluidRobinBlock += *M_blocks[1];
95 *fluidRobinBlock += *M_robinPart;
96 fluidRobinBlock->globalAssemble();
97 M_blocks[1]->swapCrsMatrix ( fluidRobinBlock->matrixPtr() );
99 for (UInt k = 0; k < M_blocks.size(); ++k)
101 *M_globalMatrix += *M_blocks[k];
void updateInverseJacobian(const UInt &iQuadPt)
double Real
Generic real data.
uint32_type UInt
generic unsigned integer (used mainly for addressing)