29 #include "libmesh/function_base.h"
30 #include "libmesh/fem_function_base.h"
34 template<
typename FunctionType>
44 std::vector<std::string> local_var_names = this->get_var_names();
46 libMesh::UniquePtr<FunctionType>
47 func = this->build_func( *(this->_input), *(this->_system),
48 local_var_names, this->_section );
52 std::vector<VariableIndex> local_var_indices;
53 this->build_var_indices(*(this->_system), local_var_names, local_var_indices);
55 libMesh::UniquePtr<libMesh::DirichletBoundary> new_dbc =
56 this->make_dirichlet_boundary( *(this->_bc_ids), *(this->_system),
57 func, local_var_indices );
66 libMesh::UniquePtr<libMesh::DirichletBoundary>
68 (
const std::set<BoundaryID>& bc_ids,
69 const libMesh::System& ,
70 libMesh::UniquePtr<libMesh::FunctionBase<libMesh::Number> >& func,
71 const std::vector<VariableIndex>& var_indices )
73 return libMesh::UniquePtr<libMesh::DirichletBoundary>(
new libMesh::DirichletBoundary(bc_ids, var_indices, func.get()));
77 libMesh::UniquePtr<libMesh::DirichletBoundary>
79 (
const std::set<BoundaryID>& bc_ids,
80 const libMesh::System& system,
81 libMesh::UniquePtr<libMesh::FEMFunctionBase<libMesh::Number> >& func,
82 const std::vector<VariableIndex>& var_indices )
84 return libMesh::UniquePtr<libMesh::DirichletBoundary>(
new libMesh::DirichletBoundary(bc_ids, var_indices, system, func.get()) );
virtual libMesh::UniquePtr< libMesh::DirichletBoundary > create()
Subclasses implement the actual construction of the Base object in create().