25 {
26#if LIBMESH_DIM > 2
27 mesh = std::make_unique<Mesh>(*TestCommWorld);
29 es = std::make_unique<EquationSystems>(*
mesh);
38
40
42 Elem *elem =
mesh->query_elem_ptr(0);
43
45 {
46
51
52
57
58
67
68
73
74
77
78
81
82
84 }
85
88
89 c = std::make_unique<FEMContext>(*
sys);
90 s = std::make_unique<FEMContext>(*
sys);
92 {
93 c->get_element_fe(0)->get_phi();
94 c->get_element_fe(0)->get_dphi();
95#ifdef LIBMESH_ENABLE_SECOND_DERIVATIVES
96 c->get_element_fe(0)->get_d2phi();
97#endif
98 c->pre_fe_reinit(*
sys, elem);
100
101 s->get_side_fe(0)->get_normals();
102 s->pre_fe_reinit(*
sys, elem);
105 }
106#endif
107 }
std::unique_ptr< EquationSystems > es
std::unique_ptr< FEMContext > s
std::unique_ptr< FEMContext > c
std::unique_ptr< UnstructuredMesh > mesh
dof_id_type dof_number(const unsigned int s, const unsigned int var, const unsigned int comp) const
processor_id_type processor_id() const
This is the base class from which all geometric element types are derived.
const Node & node_ref(const unsigned int i) const
Provides a uniform interface to vector storage schemes for different linear algebra libraries.
virtual void set(const numeric_index_type i, const T value)=0
Sets v(i) = value.
virtual void close()=0
Calls the NumericVector's internal assembly routines, ensuring that the values are consistent across ...
Manages consistently variables, degrees of freedom, and coefficient vectors.
unsigned int add_variable(std::string_view var, const FEType &type, const std::set< subdomain_id_type > *const active_subdomains=nullptr)
Adds the variable var to the list of variables for this system.
std::unique_ptr< NumericVector< Number > > solution
Data structure to hold solution values.
virtual void update()
Update the local values to reflect the solution on neighboring processors.
Communicator * TestCommWorld