GRINS-0.8.0
elastic_membrane_base.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------bl-
2 //--------------------------------------------------------------------------
3 //
4 // GRINS - General Reacting Incompressible Navier-Stokes
5 //
6 // Copyright (C) 2014-2017 Paul T. Bauman, Roy H. Stogner
7 // Copyright (C) 2010-2013 The PECOS Development Team
8 //
9 // This library is free software; you can redistribute it and/or
10 // modify it under the terms of the Version 2.1 GNU Lesser General
11 // Public License as published by the Free Software Foundation.
12 //
13 // This library is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 // Lesser General Public License for more details.
17 //
18 // You should have received a copy of the GNU Lesser General Public
19 // License along with this library; if not, write to the Free Software
20 // Foundation, Inc. 51 Franklin Street, Fifth Floor,
21 // Boston, MA 02110-1301 USA
22 //
23 //-----------------------------------------------------------------------el-
24 
25 #ifndef GRINS_ELASTIC_MEMBRANE_BASE_H
26 #define GRINS_ELASTIC_MEMBRANE_BASE_H
27 
28 //GRINS
30 
31 namespace GRINS
32 {
33  template<typename StressStrainLaw>
35  {
36  public:
37 
38  ElasticMembraneBase( const GRINS::PhysicsName& physics_name,
39  const GetPot& input,
40  bool is_compressible);
41 
42  virtual ~ElasticMembraneBase(){};
43 
44  virtual void init_variables( libMesh::FEMSystem* system );
45 
46  protected:
47 
49 
50  void mass_residual_impl( bool compute_jacobian,
51  AssemblyContext& context,
52  InteriorFuncType interior_solution,
53  VarDerivType get_solution_deriv,
54  libMesh::Real mu = 1.0 );
55 
56  void compute_metric_tensors( unsigned int qp,
57  const libMesh::FEBase& elem,
58  const AssemblyContext& context,
59  const libMesh::Gradient& grad_u,
60  const libMesh::Gradient& grad_v,
61  const libMesh::Gradient& grad_w,
66  libMesh::Real& lambda_sq);
67 
69 
71 
73  libMesh::Real _h0;
74 
76  libMesh::Real _rho;
77 
80 
81  private:
82 
84 
85  };
86 
87 }
88 
89 #endif // GRINS_ELASTIC_MEMBRANE_BASE_H
unsigned int VariableIndex
More descriptive name of the type used for variable indices.
Definition: var_typedefs.h:42
void mass_residual_impl(bool compute_jacobian, AssemblyContext &context, InteriorFuncType interior_solution, VarDerivType get_solution_deriv, libMesh::Real mu=1.0)
Implementation of mass_residual.
void compute_metric_tensors(unsigned int qp, const libMesh::FEBase &elem, const AssemblyContext &context, const libMesh::Gradient &grad_u, const libMesh::Gradient &grad_v, const libMesh::Gradient &grad_w, libMesh::TensorValue< libMesh::Real > &a_cov, libMesh::TensorValue< libMesh::Real > &a_contra, libMesh::TensorValue< libMesh::Real > &A_cov, libMesh::TensorValue< libMesh::Real > &A_contra, libMesh::Real &lambda_sq)
libMesh::Real _rho
Membrane density.
libMesh::Real(libMesh::DiffContext::* VarDerivType)() const
GRINS namespace.
void(libMesh::FEMContext::* InteriorFuncType)(unsigned int, unsigned int, libMesh::Real &) const
std::string PhysicsName
VariableIndex _lambda_sq_var
Variable index for lambda_sq variable.
libMesh::Real _h0
Membrane thickness.
virtual void init_variables(libMesh::FEMSystem *system)
Initialize variables for this physics.

Generated on Tue Dec 19 2017 12:47:27 for GRINS-0.8.0 by  doxygen 1.8.9.1