LifeV
ETRobinMembraneSolver.hpp
Go to the documentation of this file.
1 //@HEADER
2 /*
3 *******************************************************************************
4 
5  Copyright (C) 2004, 2005, 2007 EPFL, Politecnico di Milano, INRIA
6  Copyright (C) 2010 EPFL, Politecnico di Milano, Emory University
7 
8  This file is part of LifeV.
9 
10  LifeV is free software; you can redistribute it and/or modify
11  it under the terms of the GNU Lesser General Public License as published by
12  the Free Software Foundation, either version 3 of the License, or
13  (at your option) any later version.
14 
15  LifeV is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18  Lesser General Public License for more details.
19 
20  You should have received a copy of the GNU Lesser General Public License
21  along with LifeV. If not, see <http://www.gnu.org/licenses/>.
22 
23 *******************************************************************************
24 */
25 //@HEADER
26 
27 /*!
28  @file
29  @brief
30 
31  @author Matteo Pozzoli <matteo1.pozzoli@mail.polimi.it>
32  @author Claudia Colciago <claudia.colciago@epfl.ch>
33  @date 08-03-2011
34  */
35 #ifndef ET_ROBIN_MEMBRANE_SOLVER
36 #define ET_ROBIN_MEMBRANE_SOLVER
37 
38 #include <lifev/core/algorithm/SolverAztecOO.hpp>
39 
40 //#include <lifev/core/array/MatrixBlockMonolithicEpetra.hpp>
41 //#include <lifev/core/array/VectorBlockMonolithicEpetra.hpp>
42 #include <lifev/core/array/MatrixEpetraStructured.hpp>
43 #include <lifev/core/array/VectorEpetraStructured.hpp>
44 
45 #include <lifev/core/util/LifeChrono.hpp>
46 
47 //#include "OseenSolverBoundaryDerivative.hpp"
48 #include <lifev/core/fem/TimeAdvance.hpp>
49 #include <lifev/core/fem/TimeAdvanceBDF.hpp>
50 #include <lifev/eta/fem/ETFESpace.hpp>
51 
52 #include <lifev/core/filter/ExporterEnsight.hpp>
53 #include <lifev/core/filter/ExporterHDF5.hpp>
54 
55 #include <lifev/core/mesh/MeshPartitioner.hpp>
56 #include <lifev/core/mesh/RegionMesh3DStructured.hpp>
57 //#include <lifev/core/mesh/RegionMesh3D.hpp>
58 #include <lifev/core/mesh/RegionMesh.hpp>
59 #include <lifev/core/mesh/MeshUtility.hpp>
60 #include <lifev/core/mesh/MeshData.hpp>
61 
62 #include <lifev/core/fem/DOFInterface3Dto3D.hpp>
63 #include <lifev/navier_stokes/solver/OseenAssembler.hpp>
64 
65 
67 
68 /*!
69  * \class ALE
70  * \brief 2D/3D robinMembrane Simulation class
71  *
72  * @author Claudia Colciago
73  * @see
74  */
75 namespace LifeV
76 {
77 
79  // :
80  // public LifeV::Application
81 {
82 public:
83 
84 
85  /** @name Typedefs
86  */
87  //@{
88 
90  //typedef MatrixBlockMonolithicEpetra<Real> matrix_block_type;
91  //typedef VectorBlockMonolithicEpetra vector_block_type;
99 
102 
103  //@}
104 
105  /** @name Constructors, destructor
106  */
107  //@{
108  ETRobinMembraneSolver ( int argc,
109  char** argv );
110 
112 
113  {}
114 
115  //@}
116 
117  /** @name Methods
118  */
119  //@{
120 
121  //! initialize test
122  void initialize();
123 
124  //! create interface map
125  //void createInterfaceMap ( vectorPtr_type checkVector, meshPtr_type& mesh , const DOF& dof);
126  void createInterfaceMap ( std::map<ID, ID> const& locDofMap , const DOF& dof );
127 
128  //! run test
129  void run();
130 
131 private:
132 
133  struct Private;
143 
144 };
145 
146 }
147 #endif /* ET_ROBIN_MEMBRANE_SOLVER */
VectorEpetra - The Epetra Vector format Wrapper.
std::shared_ptr< TimeAdvance< vector_type > > timeAdvancePtr_type
std::shared_ptr< mesh_type > meshPtr_type
std::shared_ptr< ETFESpace< mesh_type, MapEpetra, 3, 3 > > M_ETuFESpace
std::shared_ptr< assembler_type > M_pseudoFSI
RegionMesh< LinearTetra > mesh_type
std::shared_ptr< vector_type > vectorPtr_type
void createInterfaceMap(std::map< ID, ID > const &locDofMap, const DOF &dof)
create interface map
void importFromHDF5(std::string const &fileName, std::string const &matrixName="matrix")
Read a matrix from a HDF5 (.h5) file.
void initialize()
initialize test
std::shared_ptr< MapEpetra > M_interfaceMap
MatrixEpetraStructured< Real > matrix_block_type
std::shared_ptr< Private > M_d
VectorEpetraStructured - class of block vector.
std::shared_ptr< FESpace< mesh_type, MapEpetra > > M_uFESpace
std::shared_ptr< ETFESpace< mesh_type, MapEpetra, 3, 1 > > M_ETpFESpace
double Real
Generic real data.
Definition: LifeV.hpp:175
OseenAssembler - Assembly class for the Oseen problem.
ETRobinMembraneSolver(int argc, char **argv)
std::shared_ptr< FESpace< mesh_type, MapEpetra > > M_uCompFESpace
std::shared_ptr< FESpace< mesh_type, MapEpetra > > M_mFESpace
std::shared_ptr< FESpace< mesh_type, MapEpetra > > M_pFESpace
VectorEpetraStructured vector_block_type
MatrixEpetraStructured - class of block matrix.
OseenAssembler< mesh_type, matrix_type, vector_type > assembler_type
std::shared_ptr< matrix_type > matrixPtr_type