25 #ifndef GRINS_NEUMANN_BC_FUNCTION_BASE_H
26 #define GRINS_NEUMANN_BC_FUNCTION_BASE_H
34 #include "libmesh/auto_ptr.h"
35 #include "libmesh/point.h"
36 #include "libmesh/function_base.h"
37 #include "libmesh/fem_function_base.h"
41 template<
typename FunctionType,
typename FEShape>
63 virtual bool eval_flux(
bool compute_jacobian,
66 bool is_axisymmetric );
72 libMesh::Real time,
unsigned int component,
73 libMesh::FEMFunctionBase<FEShape>& func )
75 return func.component(context,component,point,time);
80 libMesh::Real time,
unsigned int component,
81 libMesh::FunctionBase<FEShape>& func )
83 return func.component(component,point,time);
90 std::vector<VariableIndex>
_vars;
95 libMesh::UniquePtr<FunctionType>
_func;
101 #endif // GRINS_NEUMANN_BC_FUNCTION_BASE_H
unsigned int VariableIndex
More descriptive name of the type used for variable indices.
std::vector< VariableIndex > _vars
Variable indices for the variables whose Neumann contribution we're computing.
NeumannBCFunctionBase(const std::vector< VariableIndex > &vars)
Constructor for function with several variables.
FEShape eval_func(AssemblyContext &, const libMesh::Point &point, libMesh::Real time, unsigned int component, libMesh::FunctionBase< FEShape > &func)
Helper function to dispatch to FunctionBase API.
virtual bool eval_flux(bool compute_jacobian, AssemblyContext &context, libMesh::Real sign, bool is_axisymmetric)
virtual ~NeumannBCFunctionBase()
FEShape eval_func(AssemblyContext &context, const libMesh::Point &point, libMesh::Real time, unsigned int component, libMesh::FEMFunctionBase< FEShape > &func)
Helper function to dispatch to FEMFunctionBase API.
libMesh::UniquePtr< FunctionType > _func
Function object for the actual Neumann flux.
NeumannBCFunctionBase(VariableIndex var)
Constructor for function with only one variable.