78 {
79 LOG_UNIT_TEST;
84
86 auto & nodal_system = es.add_system<
System>(
"nodal_system");
88 auto & nodal_dof_map = nodal_system.get_dof_map();
89 nodal_dof_map.remove_default_ghosting();
90 auto & elem_system = es.add_system<
System>(
"elem_system");
92 auto & elem_dof_map = elem_system.get_dof_map();
93 elem_dof_map.remove_default_ghosting();
94
95 es.init();
96
97 {
98 auto n_evaluable = std::distance(
mesh.evaluable_elements_begin(nodal_dof_map),
99 mesh.evaluable_elements_end(nodal_dof_map));
100 typedef decltype(n_evaluable) comp_type;
101 switch (rank)
102 {
103 case 0:
104 CPPUNIT_ASSERT_EQUAL(n_evaluable, comp_type(9));
105 break;
106
107 case 1:
108 CPPUNIT_ASSERT_EQUAL(n_evaluable, comp_type(1));
109 break;
110
111 default:
112 CPPUNIT_ASSERT_EQUAL(n_evaluable, comp_type(0));
113 break;
114 }
115 }
116
117 {
118 auto n_evaluable = std::distance(
mesh.evaluable_elements_begin(elem_dof_map),
119 mesh.evaluable_elements_end(elem_dof_map));
120 typedef decltype(n_evaluable) comp_type;
121 switch (rank)
122 {
123 case 0:
124 CPPUNIT_ASSERT_EQUAL(n_evaluable, comp_type(
TestCommWorld->size() == 1 ? 9 : 8));
125 break;
126
127 case 1:
128 CPPUNIT_ASSERT_EQUAL(n_evaluable, comp_type(1));
129 break;
130
131 default:
132 CPPUNIT_ASSERT_EQUAL(n_evaluable, comp_type(0));
133 break;
134 }
135 }
136
137 {
138 std::vector<const DofMap *> dof_maps = {&nodal_dof_map, &elem_dof_map};
139 auto n_evaluable = std::distance(
mesh.multi_evaluable_elements_begin(dof_maps),
140 mesh.multi_evaluable_elements_end(dof_maps));
141 typedef decltype(n_evaluable) comp_type;
142 switch (rank)
143 {
144 case 0:
145 CPPUNIT_ASSERT_EQUAL(n_evaluable, comp_type(
TestCommWorld->size() == 1 ? 9 : 8));
146 break;
147
148 case 1:
149 CPPUNIT_ASSERT_EQUAL(n_evaluable, comp_type(1));
150 break;
151
152 default:
153 CPPUNIT_ASSERT_EQUAL(n_evaluable, comp_type(0));
154 break;
155 }
156 }
157 }
This is the EquationSystems class.
virtual std::unique_ptr< Partitioner > & partitioner()
A partitioner to use at each partitioning.
The Mesh class is a thin wrapper, around the ReplicatedMesh class by default.
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.
Communicator * TestCommWorld