fenris 0.0.33

A library for advanced finite element computations in Rust
Documentation
use crate::export_mesh_vtk;
use fenris::connectivity::Tri3d2Connectivity;
use fenris::mesh::refinement::{refine_uniformly, refine_uniformly_repeat};
use fenris::mesh::Mesh;
use insta::assert_debug_snapshot;
use nalgebra::point;

#[test]
fn uniform_refinement_tri3d2() {
    let mesh = {
        let vertices = vec![
            point![0.0, 0.0],
            point![1.0, 0.0],
            point![2.0, -1.0],
            point![2.5, 1.5],
            point![1.2, 1.0],
            point![0.0, 1.3],
        ];
        let cells = vec![
            Tri3d2Connectivity([0, 1, 5]),
            Tri3d2Connectivity([1, 2, 3]),
            Tri3d2Connectivity([3, 4, 1]),
            Tri3d2Connectivity([1, 4, 5]),
        ];
        Mesh::from_vertices_and_connectivity(vertices, cells)
    };
    let refined_once = refine_uniformly(&mesh);
    let refined0 = refine_uniformly_repeat(&mesh, 0);
    let refined1 = refine_uniformly_repeat(&mesh, 1);
    let refined2 = refine_uniformly_repeat(&mesh, 2);
    export_mesh_vtk("uniform_refinement_tri3d2", "mesh", &mesh);
    export_mesh_vtk("uniform_refinement_tri3d2", "refined_once", &refined_once);
    export_mesh_vtk("uniform_refinement_tri3d2", "refined0", &refined0);
    export_mesh_vtk("uniform_refinement_tri3d2", "refined1", &refined1);
    export_mesh_vtk("uniform_refinement_tri3d2", "refined2", &refined2);
    assert_debug_snapshot!(refined_once);
    assert_debug_snapshot!(refined0);
    assert_debug_snapshot!(refined1);
    assert_debug_snapshot!(refined2);
}