Class for specifying Dirichlet boundary conditions as constraints. More...
#include <dirichlet_boundaries.h>
Public Member Functions | |
DirichletBoundary (const std::set< boundary_id_type > &b_in, const std::vector< unsigned int > &variables_in, const FunctionBase< Number > *f_in, const FunctionBase< Gradient > *g_in=nullptr) | |
DirichletBoundary (const std::set< boundary_id_type > &b_in, const std::vector< unsigned int > &variables_in, const FunctionBase< Number > &f_in, VariableIndexing type=SYSTEM_VARIABLE_ORDER) | |
DirichletBoundary (const std::set< boundary_id_type > &b_in, const std::vector< unsigned int > &variables_in, const FunctionBase< Number > &f_in, const FunctionBase< Gradient > &g_in, VariableIndexing type=SYSTEM_VARIABLE_ORDER) | |
DirichletBoundary (const std::set< boundary_id_type > &b_in, const std::vector< unsigned int > &variables_in, const System &f_sys_in, const FEMFunctionBase< Number > *f_in, const FEMFunctionBase< Gradient > *g_in=nullptr) | |
DirichletBoundary (const std::set< boundary_id_type > &b_in, const std::vector< unsigned int > &variables_in, const System &f_sys_in, const FEMFunctionBase< Number > &f_in, VariableIndexing type=SYSTEM_VARIABLE_ORDER) | |
DirichletBoundary (const std::set< boundary_id_type > &b_in, const std::vector< unsigned int > &variables_in, const System &f_sys_in, const FEMFunctionBase< Number > &f_in, const FEMFunctionBase< Gradient > &g_in, VariableIndexing type=SYSTEM_VARIABLE_ORDER) | |
DirichletBoundary (const DirichletBoundary &dirichlet_in) | |
~DirichletBoundary () | |
Public Attributes | |
std::set< boundary_id_type > | b |
std::vector< unsigned int > | variables |
std::unique_ptr< FunctionBase< Number > > | f |
std::unique_ptr< FunctionBase< Gradient > > | g |
std::unique_ptr< FEMFunctionBase< Number > > | f_fem |
std::unique_ptr< FEMFunctionBase< Gradient > > | g_fem |
const System * | f_system |
Class for specifying Dirichlet boundary conditions as constraints.
This class allows one to associate Dirichlet boundary values with a given set of mesh boundary ids and system variable ids.
Dirichlet values must be supplied as the input function "f"; when using some specialized elements, gradient values must be supplied via the input function "g".
Dirichlet functions may be subclasses of FunctionBase or FEMFunctionBase; in the latter case the user must also supply a reference to the System on which the FEMFunctionBase will be evaluated.
Dirichlet functions are allowed to return NaN; if this is encountered, then the degree of freedom values in a patch around the location of the returned NaN will be left unconstrained. E.g. a NaN on a boundary edge in 3D would leave that edge and the two adjoining face interiors unconstrained, but would still permit the other edge and node DoFs around those faces to be constrained.
Definition at line 89 of file dirichlet_boundaries.h.
libMesh::DirichletBoundary::DirichletBoundary | ( | const std::set< boundary_id_type > & | b_in, |
const std::vector< unsigned int > & | variables_in, | ||
const FunctionBase< Number > * | f_in, | ||
const FunctionBase< Gradient > * | g_in = nullptr |
||
) |
Constructor for a system-variable-order boundary using pointers-to-functors.
Definition at line 34 of file dirichlet_boundary.C.
libMesh::DirichletBoundary::DirichletBoundary | ( | const std::set< boundary_id_type > & | b_in, |
const std::vector< unsigned int > & | variables_in, | ||
const FunctionBase< Number > & | f_in, | ||
VariableIndexing | type = SYSTEM_VARIABLE_ORDER |
||
) |
Constructor for a boundary from reference-to-functor.
Defaults to system variable indexing for backwards compatibility, but most users will prefer local indexing.
Definition at line 52 of file dirichlet_boundary.C.
References libMesh::FunctionBase< Output >::clone(), f, and libMesh::LOCAL_VARIABLE_ORDER.
libMesh::DirichletBoundary::DirichletBoundary | ( | const std::set< boundary_id_type > & | b_in, |
const std::vector< unsigned int > & | variables_in, | ||
const FunctionBase< Number > & | f_in, | ||
const FunctionBase< Gradient > & | g_in, | ||
VariableIndexing | type = SYSTEM_VARIABLE_ORDER |
||
) |
Constructor for a system-variable-order boundary from references-to-functors.
Defaults to system variable indexing for backwards compatibility, but most users will prefer local indexing.
Definition at line 74 of file dirichlet_boundary.C.
References libMesh::FunctionBase< Output >::clone(), f, g, and libMesh::LOCAL_VARIABLE_ORDER.
libMesh::DirichletBoundary::DirichletBoundary | ( | const std::set< boundary_id_type > & | b_in, |
const std::vector< unsigned int > & | variables_in, | ||
const System & | f_sys_in, | ||
const FEMFunctionBase< Number > * | f_in, | ||
const FEMFunctionBase< Gradient > * | g_in = nullptr |
||
) |
Constructor for a system-variable-order boundary from pointers-to-fem-functors.
Definition at line 105 of file dirichlet_boundary.C.
References f_fem.
libMesh::DirichletBoundary::DirichletBoundary | ( | const std::set< boundary_id_type > & | b_in, |
const std::vector< unsigned int > & | variables_in, | ||
const System & | f_sys_in, | ||
const FEMFunctionBase< Number > & | f_in, | ||
VariableIndexing | type = SYSTEM_VARIABLE_ORDER |
||
) |
Constructor for a system-variable-order boundary from reference-to-fem-functor.
Defaults to system variable indexing for backwards compatibility, but most users will prefer local indexing.
Definition at line 121 of file dirichlet_boundary.C.
References libMesh::FEMFunctionBase< Output >::clone(), f_fem, and libMesh::LOCAL_VARIABLE_ORDER.
libMesh::DirichletBoundary::DirichletBoundary | ( | const std::set< boundary_id_type > & | b_in, |
const std::vector< unsigned int > & | variables_in, | ||
const System & | f_sys_in, | ||
const FEMFunctionBase< Number > & | f_in, | ||
const FEMFunctionBase< Gradient > & | g_in, | ||
VariableIndexing | type = SYSTEM_VARIABLE_ORDER |
||
) |
Constructor for a system-variable-order boundary from references-to-fem-functors.
Defaults to system variable indexing for backwards compatibility, but most users will prefer local indexing.
Definition at line 142 of file dirichlet_boundary.C.
References libMesh::FEMFunctionBase< Output >::clone(), f_fem, g_fem, and libMesh::LOCAL_VARIABLE_ORDER.
libMesh::DirichletBoundary::DirichletBoundary | ( | const DirichletBoundary & | dirichlet_in | ) |
Copy constructor. Deep copies (clones) functors; shallow copies any System reference
Definition at line 171 of file dirichlet_boundary.C.
References f, f_fem, f_system, g, and g_fem.
libMesh::DirichletBoundary::~DirichletBoundary | ( | ) |
std::set<boundary_id_type> libMesh::DirichletBoundary::b |
Definition at line 174 of file dirichlet_boundaries.h.
Referenced by libMesh::DofMap::check_dirichlet_bcid_consistency(), libMesh::DofMap::remove_adjoint_dirichlet_boundary(), and libMesh::DofMap::remove_dirichlet_boundary().
std::unique_ptr<FunctionBase<Number> > libMesh::DirichletBoundary::f |
Definition at line 177 of file dirichlet_boundaries.h.
Referenced by DirichletBoundary().
std::unique_ptr<FEMFunctionBase<Number> > libMesh::DirichletBoundary::f_fem |
Definition at line 180 of file dirichlet_boundaries.h.
Referenced by DirichletBoundary().
const System* libMesh::DirichletBoundary::f_system |
Definition at line 183 of file dirichlet_boundaries.h.
Referenced by DirichletBoundary().
std::unique_ptr<FunctionBase<Gradient> > libMesh::DirichletBoundary::g |
Definition at line 178 of file dirichlet_boundaries.h.
Referenced by DirichletBoundary().
std::unique_ptr<FEMFunctionBase<Gradient> > libMesh::DirichletBoundary::g_fem |
Definition at line 181 of file dirichlet_boundaries.h.
Referenced by DirichletBoundary().
std::vector<unsigned int> libMesh::DirichletBoundary::variables |
Definition at line 175 of file dirichlet_boundaries.h.
Referenced by libMesh::DofMap::remove_adjoint_dirichlet_boundary(), and libMesh::DofMap::remove_dirichlet_boundary().