Page MenuHomec4science

test_axisymmetric_uniform_mesh_1d.cpp
No OneTemporary

File Metadata

Created
Fri, Aug 9, 09:18

test_axisymmetric_uniform_mesh_1d.cpp

#include "catch.hpp"
#include "reactmicp/meshes/axisymmetric_uniform_mesh1d.hpp"
using namespace specmicp::reactmicp::mesh;
TEST_CASE("Axisymmetric uniform mesh 1d", "[Reactmicp, mesh, axisymmetric, uniform, 1D]") {
SECTION("test uniform mesh 1d") {
double nb_node = 6;
double radius = 5;
double dx = 1;
double height = 2;
AxisymmetricUniformMesh1D mesh(nb_node, radius, height);
REQUIRE(mesh.nb_nodes() == nb_node);
REQUIRE(mesh.nb_elements() == nb_node - 1);
REQUIRE(mesh.get_dx(0) == dx);
REQUIRE(mesh.get_radius_face(0) == 4.5);
REQUIRE(mesh.get_radius_face(1) == 3.5);
REQUIRE(std::abs(mesh.get_face_area(0) - 2*M_PI*4.5*height) < 1e-10);
REQUIRE(std::abs(mesh.get_volume_element(0) - M_PI*height*(5*5-4*4)) < 1e-10);
REQUIRE(std::abs(mesh.get_volume_cell(0) - M_PI*height*(5*5-4.5*4.5)) < 1e-10);
REQUIRE(std::abs(mesh.get_volume_element(1) - M_PI*height*(4*4-3*3)) < 1e-10);
REQUIRE(std::abs(mesh.get_volume_cell(1) - M_PI*height*(4.5*4.5-3.5*3.5)) < 1e-10);
int check_nb_node = 0;
for (int node: mesh.range_nodes()) {++check_nb_node;}
REQUIRE(check_nb_node == nb_node);
int check_nb_element = 0;
for (int element: mesh.range_elements()) {++check_nb_element;}
REQUIRE(check_nb_element == mesh.nb_elements());
int check_nen = 0;
for (int node: mesh.range_nen()) {++check_nen;}
REQUIRE(check_nen == 2);
}
}

Event Timeline