LifeV
BCInterfaceFunctionSolverDefinedSolid3D.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 File containing the BCInterfaceFunctionSolverDefined class and specializations
30  *
31  * @date 23-04-2009
32  * @author Cristiano Malossi <cristiano.malossi@epfl.ch>
33  *
34  * @maintainer Cristiano Malossi <cristiano.malossi@epfl.ch>
35  */
36 
37 #ifndef BCInterfaceFunctionSolverDefinedSolid3D_H
38 #define BCInterfaceFunctionSolverDefinedSolid3D_H 1
39 
40 // Structural solver includes
41 #include <lifev/structure/solver/StructuralOperator.hpp>
42 
43 // BCInterface includes
44 #include <lifev/bc_interface/3D/bc/BCInterfaceData3D.hpp>
45 #include <lifev/bc_interface/core/function/BCInterfaceFunctionSolverDefined.hpp>
46 
47 namespace LifeV
48 {
49 
50 //! BCInterfaceFunctionSolverDefined - Template specialization of \c BCInterfaceFunctionSolverDefined for Solid 3D problems
51 /*!
52  * @author Cristiano Malossi
53  *
54  *
55  * The BCInterfaceFunctionSolverDefined class provides the interface between the
56  * \c BCInterface3D and the solver defined boundary conditions of the \c StructuralOperator.
57  *
58  * <b>DETAILS:</b> <BR>
59  * The constructor of the class takes a string contains the ID of the boundary condition to impose.
60  * The list of available conditions is the \c Solid3DFunction enum. These are:
61  *
62  * <ol>
63  * <li> RobinWall
64  * </ol>
65  */
66 template< >
68 {
69 public:
70 
71  //! @name Type definitions
72  //@{
73 
76 
79 
84 
87 
90 
91  //@}
92 
93 
94  //! @name Constructors & Destructor
95  //@{
96 
97  //! Constructor
99 
100  //! Destructor
102 
103  //@}
104 
105 
106  //! @name Methods
107  //@{
108 
109  //! Copy the stored parameters in the data container
110  /*!
111  * @param data boundary condition data loaded from \c GetPot file
112  */
113  void exportData ( dataPtr_Type& data );
114 
115  //! Assign a boundary function to the boundary condition vector base
116  /*!
117  * @param physicalSolver FSI physical solver,
118  * @param base boundary condition base
119  */
120  template< class BCBaseType >
122  {
123  checkFunction ( base );
124  }
125 
126  //! Update the solver variables
128 
129  //@}
130 
131 
132  //! @name Set methods
133  //@{
134 
135  //! Set data
136  /*!
137  * @param data boundary condition data loaded from \c GetPot file
138  */
139  void setData ( const dataPtr_Type& data );
140 
141  //! Set the physical solver
142  /*!
143  * @param physicalSolver physical solver
144  */
146  {
148  }
149 
150  //@}
151 
152 
153  //! @name Get methods
154  //@{
155 
156  //! Detect the correct base type
157  /*!
158  * @param bcBaseType the type of the base
159  */
161 
162  //@}
163 
164 private:
165 
166  //! @name Unimplemented Methods
167  //@{
168 
170 
172 
173  //@}
174 
175 
176  //! @name Private Methods
177  //@{
178 
179  void checkFunction ( BCVector& base );
180 
182 
184 
185  //@}
186 
188  {
190  };
191 
193 
195 
196  // The following members are required since the Solid BC are applied
197  // a posteriori, when setPhysicalSolver() is called.
198 
199  // Classical parameters
205 
206  // RobinViscoelastic
211 };
212 
213 } // Namespace LifeV
214 
215 #endif /* BCInterfaceFunctionSolverDefinedSolid3D_H */