15{
16 cout.precision( 10 );
17 cout << "\n";
18 cout << "=== TwoD_Node_Mesh: very basic read/write test ======\n";
19 cout << "\n";
20
21 std::size_t nx( 11 );
22 std::size_t ny( 21 );
25 std::size_t nx2( 31 );
26 std::size_t ny2( 41 );
29
30
32
33 for ( std::size_t i = 0; i < nx; ++i )
34 {
35 for ( std::size_t j = 0; j < ny; ++j )
36 {
37 mesh( i, j, 0 ) = cos( M_PI * x[ i ] ) * sin( M_PI * y[ j ] );
38 }
39 }
40
41
42 mesh.remesh1( x2, y2 );
43
44 mesh.remesh1( x, y );
45
46
47
48 for ( std::size_t j = 0; j < ny; ++j )
49 {
50 for ( std::size_t i = 0; i < nx; ++i )
51 {
52 mesh( i, j, 0 ) -= cos( M_PI * x[ i ] ) * sin( M_PI * y[ j ] );
53 }
54 }
55
56
57 const double diff = mesh.get_var_as_matrix( 0 ).inf_norm();
58 if ( diff > 1.e-14 )
59 {
60 cout << "\033[1;31;48m * FAILED \033[0m\n";
61 cout.precision( 10 );
62 cout << "Difference following remeshing is " << diff << "\n";
63 return 1;
64 }
65 else
66 {
67 cout << "\033[1;32;48m * PASSED \033[0m\n";
68 return 0;
69 }
70
71}
An DenseVector class – a dense vector object.
A two dimensional mesh utility object.
DenseVector< double > uniform_node_vector(const double &lower, const double &upper, const std::size_t &N)
Return a DENSE vector with the nodal points of a uniform mesh distributed between the upper/lower bou...