示例#1
0
    private static void test003()

    //****************************************************************************80
    //
    //  Purpose:
    //
    //    TEST003 tests TETRAHEDRON_ORDER10_TO_ORDER4.
    //
    //  Licensing:
    //
    //    This code is distributed under the GNU LGPL license.
    //
    //  Modified:
    //
    //    22 January 2007
    //
    //  Author:
    //
    //    John Burkardt
    //
    {
        int       node_num1  = 0;
        int       node_num2  = 0;
        int       tet_num1   = 0;
        int       tet_num2   = 0;
        const int tet_order1 = 10;
        const int tet_order2 = 4;

        Console.WriteLine("");
        Console.WriteLine("TEST003");
        Console.WriteLine("  For an order 10 tet mesh,");
        Console.WriteLine("  TETRAHEDRON_ORDER10_TO_ORDER4");
        Console.WriteLine("  makes a linear (order 4) tet mesh by using");
        Console.WriteLine("  the existing nodes, and replacing each");
        Console.WriteLine("  quadratic tetrahedron by 8 linear tetrahedrons.");

        TetMesh.tet_mesh_order10_example_size(ref node_num1, ref tet_num1);

        double[] node_xyz  = new double[3 * node_num1];
        int[]    tet_node1 = new int[tet_order1 * tet_num1];

        TetMesh.tet_mesh_order10_example_set(node_num1, tet_num1,
                                             ref node_xyz, ref tet_node1);

        typeMethods.i4mat_transpose_print_some(tet_order1, tet_num1, tet_node1,
                                               1, 1, tet_order1, 5, "  First 5 quadratic tetrahedrons:");

        TetMesh.tet_mesh_order10_to_order4_size(node_num1, tet_num1,
                                                ref node_num2, ref tet_num2);

        Console.WriteLine("");
        Console.WriteLine("  Quadratic mesh size is       " + tet_num1 + "");
        Console.WriteLine("  Linearized mesh size will be " + tet_num2 + "");

        int[] tet_node2 = new int[tet_order2 * tet_num2];

        TetMesh.tet_mesh_order10_to_order4_compute(tet_num1, tet_node1,
                                                   tet_num2, ref tet_node2);

        typeMethods.i4mat_transpose_print_some(tet_order2, tet_num2, tet_node2,
                                               1, 1, tet_order2, 5, "  First 5 linear tetrahedrons:");
    }