25 #ifndef GRINS_BOUNDARY_CONDITIONS_H
26 #define GRINS_BOUNDARY_CONDITIONS_H
33 #include "libmesh/libmesh.h"
34 #include "libmesh/vector_value.h"
35 #include "libmesh/tensor_tools.h"
40 class AssemblyContext;
56 template<
typename FEShape = libMesh::Real>
59 const libMesh::Real sign,
60 const typename libMesh::TensorTools::IncrementRank<FEShape>::type& value )
const;
63 template<
typename FEShape = libMesh::Real>
66 const libMesh::Real sign,
67 const typename libMesh::TensorTools::IncrementRank<FEShape>::type& value )
const;
72 template<
typename FEShape = libMesh::Real>
75 const libMesh::Real sign,
76 const FEShape& value )
const;
81 template<
typename FEShape = libMesh::Real>
84 const libMesh::Real sign,
85 const FEShape& value )
const;
90 template<
typename FEShape = libMesh::Real>
93 const bool request_jacobian,
95 const libMesh::Real sign,
96 std::tr1::shared_ptr<NeumannFuncObj> neumann_func )
const;
100 template<
typename FEShape = libMesh::Real>
103 const bool request_jacobian,
105 const libMesh::Real sign,
106 const std::tr1::shared_ptr<NeumannFuncObj> neumann_func )
const;
112 template<
typename FEShape = libMesh::Real>
115 const bool request_jacobian,
117 const libMesh::Real sign,
118 std::tr1::shared_ptr<NeumannFuncObj> neumann_func )
const;
124 template<
typename FEShape = libMesh::Real>
127 const bool request_jacobian,
129 const libMesh::Real sign,
130 std::tr1::shared_ptr<NeumannFuncObj> neumann_func )
const;
134 template<
typename FEShape = libMesh::Real>
136 const bool request_jacobian,
138 const libMesh::Point& pin_location,
const double penalty = 1.0 );
143 #endif // GRINS_BOUNDARY_CONDITIONS_H
unsigned int VariableIndex
More descriptive name of the type used for variable indices.
void apply_neumann_normal(AssemblyContext &context, const VariableIndex var, const libMesh::Real sign, const FEShape &value) const
Applies Neumann boundary conditions for the constant case.
void apply_neumann_axisymmetric(AssemblyContext &context, const VariableIndex var, const libMesh::Real sign, const typename libMesh::TensorTools::IncrementRank< FEShape >::type &value) const
Applies Neumann boundary conditions for the constant case.
void pin_value(AssemblyContext &context, const CachedValues &cache, const bool request_jacobian, const VariableIndex var, const double value, const libMesh::Point &pin_location, const double penalty=1.0)
The idea here is to pin a variable to a particular value if there is a null space - e...
void apply_neumann(AssemblyContext &context, const VariableIndex var, const libMesh::Real sign, const typename libMesh::TensorTools::IncrementRank< FEShape >::type &value) const
Applies Neumann boundary conditions for the constant case.
void apply_neumann_normal_axisymmetric(AssemblyContext &context, const VariableIndex var, const libMesh::Real sign, const FEShape &value) const
Applies Neumann boundary conditions for the constant case.
Class to hold typical boundary condition methods.