GRINS-0.7.0
elastic_membrane.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------bl-
2 //--------------------------------------------------------------------------
3 //
4 // GRINS - General Reacting Incompressible Navier-Stokes
5 //
6 // Copyright (C) 2014-2016 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_H
26 #define GRINS_ELASTIC_MEMBRANE_H
27 
28 //GRINS
30 
31 namespace GRINS
32 {
33  template<typename StressStrainLaw>
34  class ElasticMembrane : public ElasticMembraneBase<StressStrainLaw>
35  {
36  public:
37 
38  ElasticMembrane( const GRINS::PhysicsName& physics_name, const GetPot& input,
39  bool is_compressible );
40 
41  virtual ~ElasticMembrane(){};
42 
44  virtual void register_postprocessing_vars( const GetPot& input,
46 
48  virtual void element_time_derivative( bool compute_jacobian,
49  AssemblyContext& context,
50  CachedValues& /*cache*/ );
51 
52  virtual void element_constraint( bool compute_jacobian,
53  AssemblyContext& context,
54  CachedValues& cache );
55 
56  virtual void mass_residual( bool compute_jacobian,
57  AssemblyContext& context,
58  CachedValues& /*cache*/ )
59  { this->mass_residual_impl(compute_jacobian,
60  context,
61  &libMesh::FEMContext::interior_accel,
62  &libMesh::DiffContext::get_elem_solution_accel_derivative); }
63 
65  virtual void compute_postprocessed_quantity( unsigned int quantity_index,
66  const AssemblyContext& context,
67  const libMesh::Point& point,
68  libMesh::Real& value );
69 
70  private:
71 
73 
75  std::vector<unsigned int> _stress_indices;
76 
78  unsigned int _stress_zz_index;
79 
81  std::vector<unsigned int> _strain_indices;
82 
83  };
84 
85 } // end namespace GRINS
86 
87 #endif // GRINS_ELASTIC_MEMBRANE_H
unsigned int _stress_zz_index
Index from registering sigma_zz for postprocessing. Mainly for sanity checking.
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.
std::vector< unsigned int > _stress_indices
Index from registering this quantity for postprocessing. Each component will have it's own index...
virtual void element_time_derivative(bool compute_jacobian, AssemblyContext &context, CachedValues &)
Time dependent part(s) of physics for element interiors.
virtual void element_constraint(bool compute_jacobian, AssemblyContext &context, CachedValues &cache)
Constraint part(s) of physics for element interiors.
virtual void mass_residual(bool compute_jacobian, AssemblyContext &context, CachedValues &)
Mass matrix part(s) for element interiors. All boundary terms lie within the time_derivative part...
GRINS namespace.
std::vector< unsigned int > _strain_indices
Index from registering this quantity for postprocessing. Each component will have it's own index...
virtual void register_postprocessing_vars(const GetPot &input, PostProcessedQuantities< libMesh::Real > &postprocessing)
Register postprocessing variables for ElasticMembrane.
std::string PhysicsName
virtual void compute_postprocessed_quantity(unsigned int quantity_index, const AssemblyContext &context, const libMesh::Point &point, libMesh::Real &value)
Compute the registered postprocessed quantities.

Generated on Thu Jun 2 2016 21:52:27 for GRINS-0.7.0 by  doxygen 1.8.10