libMesh
Public Member Functions | List of all members
MultiEvaluablePredTest Class Reference
Inheritance diagram for MultiEvaluablePredTest:
[legend]

Public Member Functions

 LIBMESH_CPPUNIT_TEST_SUITE (MultiEvaluablePredTest)
 
 CPPUNIT_TEST (test)
 
 CPPUNIT_TEST_SUITE_END ()
 
void setUp ()
 
void tearDown ()
 
void test ()
 

Detailed Description

Definition at line 61 of file multi_evaluable_pred_test.C.

Member Function Documentation

◆ CPPUNIT_TEST()

MultiEvaluablePredTest::CPPUNIT_TEST ( test  )

◆ CPPUNIT_TEST_SUITE_END()

MultiEvaluablePredTest::CPPUNIT_TEST_SUITE_END ( )

◆ LIBMESH_CPPUNIT_TEST_SUITE()

MultiEvaluablePredTest::LIBMESH_CPPUNIT_TEST_SUITE ( MultiEvaluablePredTest  )

◆ setUp()

void MultiEvaluablePredTest::setUp ( )
inline

Definition at line 71 of file multi_evaluable_pred_test.C.

71 {}

◆ tearDown()

void MultiEvaluablePredTest::tearDown ( )
inline

Definition at line 73 of file multi_evaluable_pred_test.C.

73 {}

◆ test()

void MultiEvaluablePredTest::test ( )
inline

Definition at line 75 of file multi_evaluable_pred_test.C.

References libMesh::EquationSystems::add_system(), libMesh::System::add_variable(), libMesh::MeshTools::Generation::build_square(), libMesh::CONSTANT, distance(), libMesh::FIRST, libMesh::EquationSystems::init(), libMesh::LAGRANGE, mesh, libMesh::MONOMIAL, libMesh::MeshBase::partitioner(), libMesh::QUAD4, TIMPI::Communicator::rank(), TIMPI::Communicator::size(), and TestCommWorld.

76  {
77  LOG_UNIT_TEST;
78  const auto rank = TestCommWorld->rank();
80  mesh.partitioner() = std::make_unique<ContrivedPartitioner>();
82 
84  auto & nodal_system = es.add_system<System>("nodal_system");
85  nodal_system.add_variable("nodal", FIRST, LAGRANGE);
86  auto & nodal_dof_map = nodal_system.get_dof_map();
87  nodal_dof_map.remove_default_ghosting();
88  auto & elem_system = es.add_system<System>("elem_system");
89  elem_system.add_variable("elem", CONSTANT, MONOMIAL);
90  auto & elem_dof_map = elem_system.get_dof_map();
91  elem_dof_map.remove_default_ghosting();
92 
93  es.init();
94 
95  {
96  auto n_evaluable = std::distance(mesh.evaluable_elements_begin(nodal_dof_map),
97  mesh.evaluable_elements_end(nodal_dof_map));
98  typedef decltype(n_evaluable) comp_type;
99  switch (rank)
100  {
101  case 0:
102  CPPUNIT_ASSERT_EQUAL(n_evaluable, comp_type(9));
103  break;
104 
105  case 1:
106  CPPUNIT_ASSERT_EQUAL(n_evaluable, comp_type(1));
107  break;
108 
109  default:
110  CPPUNIT_ASSERT_EQUAL(n_evaluable, comp_type(0));
111  break;
112  }
113  }
114 
115  {
116  auto n_evaluable = std::distance(mesh.evaluable_elements_begin(elem_dof_map),
117  mesh.evaluable_elements_end(elem_dof_map));
118  typedef decltype(n_evaluable) comp_type;
119  switch (rank)
120  {
121  case 0:
122  CPPUNIT_ASSERT_EQUAL(n_evaluable, comp_type(TestCommWorld->size() == 1 ? 9 : 8));
123  break;
124 
125  case 1:
126  CPPUNIT_ASSERT_EQUAL(n_evaluable, comp_type(1));
127  break;
128 
129  default:
130  CPPUNIT_ASSERT_EQUAL(n_evaluable, comp_type(0));
131  break;
132  }
133  }
134 
135  {
136  std::vector<const DofMap *> dof_maps = {&nodal_dof_map, &elem_dof_map};
137  auto n_evaluable = std::distance(mesh.multi_evaluable_elements_begin(dof_maps),
138  mesh.multi_evaluable_elements_end(dof_maps));
139  typedef decltype(n_evaluable) comp_type;
140  switch (rank)
141  {
142  case 0:
143  CPPUNIT_ASSERT_EQUAL(n_evaluable, comp_type(TestCommWorld->size() == 1 ? 9 : 8));
144  break;
145 
146  case 1:
147  CPPUNIT_ASSERT_EQUAL(n_evaluable, comp_type(1));
148  break;
149 
150  default:
151  CPPUNIT_ASSERT_EQUAL(n_evaluable, comp_type(0));
152  break;
153  }
154  }
155  }
This is the EquationSystems class.
libMesh::Parallel::Communicator * TestCommWorld
Definition: driver.C:171
MeshBase & mesh
virtual std::unique_ptr< Partitioner > & partitioner()
A partitioner to use at each prepare_for_use()
Definition: mesh_base.h:160
processor_id_type rank() const
void build_square(UnstructuredMesh &mesh, const unsigned int nx, const unsigned int ny, const Real xmin=0., const Real xmax=1., const Real ymin=0., const Real ymax=1., const ElemType type=INVALID_ELEM, const bool gauss_lobatto_grid=false)
A specialized build_cube() for 2D meshes.
Real distance(const Point &p)
processor_id_type size() const
Manages consistently variables, degrees of freedom, and coefficient vectors.
Definition: system.h:96
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.
Definition: system.C:1357
The Mesh class is a thin wrapper, around the ReplicatedMesh class by default.
Definition: mesh.h:50

The documentation for this class was generated from the following file: