]> https://gitweb.dealii.org/ - dealii.git/log
dealii.git
4 years agoMove GhostParticlePartitioner 11163/head
Peter Munch [Wed, 11 Nov 2020 17:25:30 +0000 (18:25 +0100)]
Move GhostParticlePartitioner

4 years agoMerge pull request #11161 from marcfehling/hp-refinement
Bruno Turcksin [Wed, 11 Nov 2020 13:29:02 +0000 (08:29 -0500)]
Merge pull request #11161 from marcfehling/hp-refinement

Functions of hp::Refinement now only available for DoFHandler in hp mode.

4 years agoMerge pull request #10899 from drwells/gridin-exodusii
Peter Munch [Wed, 11 Nov 2020 11:46:29 +0000 (12:46 +0100)]
Merge pull request #10899 from drwells/gridin-exodusii

Support ExodusII with GridIn

4 years agoMerge pull request #11162 from peterrum/step67-skew-ref
Martin Kronbichler [Wed, 11 Nov 2020 11:28:20 +0000 (12:28 +0100)]
Merge pull request #11162 from peterrum/step67-skew-ref

Add reference to skew-symmetric implementation in step-67

4 years agoMerge pull request #11156 from peterrum/reset_ghost_values_impl
Martin Kronbichler [Wed, 11 Nov 2020 10:30:07 +0000 (11:30 +0100)]
Merge pull request #11156 from peterrum/reset_ghost_values_impl

Improve VectorDataExchange::Full::reset_ghost_values

4 years agoMerge pull request #11154 from peterrum/compute_shared_memory_contiguous_indices_fix
Martin Kronbichler [Wed, 11 Nov 2020 10:29:31 +0000 (11:29 +0100)]
Merge pull request #11154 from peterrum/compute_shared_memory_contiguous_indices_fix

Fix compute_shared_memory_contiguous_indices

4 years agoMerge pull request #11157 from peterrum/fe_face_evaluation_process_and_io_comp_fix
Martin Kronbichler [Wed, 11 Nov 2020 10:29:00 +0000 (11:29 +0100)]
Merge pull request #11157 from peterrum/fe_face_evaluation_process_and_io_comp_fix

Fix fe_face_evaluation_process_and_io for multiple components

4 years agoMerge pull request #11152 from lethe-cfd/update_ghost_particles_part_2
Martin Kronbichler [Wed, 11 Nov 2020 10:28:17 +0000 (11:28 +0100)]
Merge pull request #11152 from lethe-cfd/update_ghost_particles_part_2

Finish mechanism for the update of ghost particles

4 years agoMerge pull request #11133 from marcfehling/slim-dofhandler-init
Martin Kronbichler [Wed, 11 Nov 2020 10:27:20 +0000 (11:27 +0100)]
Merge pull request #11133 from marcfehling/slim-dofhandler-init

Rework DoFHandler connections to underlying Triangulation.

4 years agoAdd reference to skew-symmetric implementation in step-67 11162/head
Peter Munch [Wed, 11 Nov 2020 10:09:33 +0000 (11:09 +0100)]
Add reference to skew-symmetric implementation in step-67

4 years agoRework DoFHandler connections to underlying Triangulation. 11133/head
Marc Fehling [Tue, 3 Nov 2020 01:56:29 +0000 (18:56 -0700)]
Rework DoFHandler connections to underlying Triangulation.

4 years agoIntroduction of ghost particles cache and new version to send 11152/head
Bruno [Wed, 4 Nov 2020 17:21:19 +0000 (12:21 -0500)]
Introduction of ghost particles cache and new version to send
information on ghost partilces without rebuilding them

Added a test with asymmetric ghosts because there was an error in the
previous implementation and this test enabled me to find it

Added changelog

4 years agoImplement ExodusII in GridIn. 10899/head
David Wells [Wed, 9 Sep 2020 17:03:14 +0000 (13:03 -0400)]
Implement ExodusII in GridIn.

The tests were all generated by hand. For future reference I included the code here.

Here is the basic 2D test (five quadrilaterals):

#include <exodusII.h>

#include <algorithm>
#include <cassert>
#include <cstring>

// Create a disk mesh with five quadrilaterals.
//
//  ____________________________
// |\                          /|
// | \                        / |
// |  \           3          /  |
// |   \                    /   |
// |    \                  /    |
// |     \                /     |
// |      \______________/      |
// |      |              |      |
// |      |              |      |
// |      |              |      |
// |   4  |      5       |   2  |
// |      |              |      |
// |      |______________|      |
// |      /              \      |
// |     /                \     |
// |    /                  \    |
// |   /                    \   |
// |  /          1           \  |
// | /                        \ |
// |/                          \|
// -----------------------------
//
// element 1 has external side sets 0, 1
// element 2 has external side sets 0, 1, 10
// element 3 has no external side sets
// element 4 has no external side set 0
//
// The inner element is in block 10 - the rest are in block 1.
int main()
{
    const int n_elems = 5;
    const int n_nodes = 8;
    int elements_1[n_elems - 1][4] = {
    {1, 2, 3, 4},
    {3, 2, 8, 7},
    {5, 7, 8, 6},
    {1, 4, 5, 6}};
    int elements_10[1][4] = {{4, 3, 7, 5}};

    double xs[n_nodes] = {0, 7, 5, 2, 2, 0, 5, 7};
    double ys[n_nodes] = {0, 0, 2, 2, 5, 7, 5, 7};

    int sizeof_data = sizeof(double);
    int sizeof_geom = sizeof(double);
    const int exid = ex_create("five.e", EX_CLOBBER, &sizeof_data, &sizeof_geom);

    const int dim = 2;
    const int n_blocks = 2;
    const int n_node_sets = 0;
    const int n_side_sets = 3;
    int ierr = ex_put_init(exid, "mytitle", dim, n_nodes, n_elems, n_blocks,
                           n_node_sets, n_side_sets);
    assert(ierr == 0);

    // nodes:
    ierr = ex_put_coord(exid, xs, ys, nullptr);
    assert(ierr == 0);

    // element blocks:
    ierr = ex_put_elem_block(exid, 1, "quad", 4, 4, 0);
    assert(ierr == 0);
    ierr = ex_put_elem_block(exid, 10, "quad", 1, 4, 0);
    assert(ierr == 0);

    ierr = ex_put_elem_conn(exid, 10, elements_10);
    assert(ierr == 0);
    ierr = ex_put_elem_conn(exid, 1, elements_1);
    assert(ierr == 0);

    // side sets:
    ierr = ex_put_side_set_param(exid, 0, 3, 0);
    assert(ierr == 0);
    int sideset_0_elems[] = {1, 2, 4};
    int sideset_0_sides[] = {1, 2, 4};
    ierr = ex_put_side_set(exid, 0, sideset_0_elems, sideset_0_sides);
    assert(ierr == 0);

    ierr = ex_put_side_set_param(exid, 1, 2, 0);
    assert(ierr == 0);
    int sideset_1_elems[] = {1, 2};
    int sideset_1_sides[] = {1, 2};
    ierr = ex_put_side_set(exid, 1, sideset_1_elems, sideset_1_sides);
    assert(ierr == 0);

    ierr = ex_put_side_set_param(exid, 10, 1, 0);
    assert(ierr == 0);
    int sideset_10_elems[] = {2};
    int sideset_10_sides[] = {2};
    ierr = ex_put_side_set(exid, 10, sideset_10_elems, sideset_10_sides);
    assert(ierr == 0);

    ierr = ex_close(exid);
    assert(ierr == 0);
}

A 3D mixed mesh:

#include <exodusII.h>

#include <algorithm>
#include <cassert>
#include <cstring>

int main()
{
    const int n_elems = 4;
    const int n_nodes = 13;
    int elements_1[1][8] = {{1, 2, 3, 4, 5, 6, 7, 8}};
    int elements_2[1][5] = {{5, 6, 7, 8, 9}};
    int elements_3[1][4] = {{6, 10, 7, 9}};
    int elements_4[1][6] = {{10, 6, 7, 13, 11, 12}};

    double xs[n_nodes] = {0, 3, 3, 0, 0, 3, 3, 0, 1, 3, 8, 8, 8};
    double ys[n_nodes] = {0, 0, 3, 3, 0, 0, 3, 3, 1, 1, 0, 3, 1};
    double zs[n_nodes] = {0, 0, 0, 0, 3, 3, 3, 3, 5, 5, 3, 3, 5};

    int sizeof_data = sizeof(double);
    int sizeof_geom = sizeof(double);
    const int exid = ex_create("four.e", EX_CLOBBER, &sizeof_data, &sizeof_geom);

    const int dim = 3;
    const int n_blocks = n_elems;
    const int n_node_sets = 0;
    const int n_side_sets = 0;
    int ierr = ex_put_init(exid, "mytitle", dim, n_nodes, n_elems, n_blocks,
                           n_node_sets, n_side_sets);
    assert(ierr == 0);

    // nodes:
    ierr = ex_put_coord(exid, xs, ys, zs);
    assert(ierr == 0);

    // block 0 (hex):
    ierr = ex_put_elem_block(exid, 1, "hex", 1, 8, 0);
    assert(ierr == 0);
    // block 1 (pyramid):
    ierr = ex_put_elem_block(exid, 10, "pyramid", 1, 5, 0);
    assert(ierr == 0);
    // block 2 (tet):
    ierr = ex_put_elem_block(exid, 100, "tet", 1, 4, 0);
    assert(ierr == 0);
    // block 3 (wedge):
    ierr = ex_put_elem_block(exid, 1000, "wedge", 1, 6, 0);
    assert(ierr == 0);

    // connectivity:
    ierr = ex_put_elem_conn(exid, 1, elements_1);
    assert(ierr == 0);
    ierr = ex_put_elem_conn(exid, 10, elements_2);
    assert(ierr == 0);
    ierr = ex_put_elem_conn(exid, 100, elements_3);
    assert(ierr == 0);
    ierr = ex_put_elem_conn(exid, 1000, elements_4);
    assert(ierr == 0);

    ierr = ex_close(exid);
    assert(ierr == 0);
}

Check that we can truncate higher-order elements correctly (like PYRAMID14 ->
our five-point pyramid)

#include <exodusII.h>

#include <algorithm>
#include <cassert>
#include <cstring>

int main()
{
    const int n_elems = 4;
    const int n_nodes = 29;
    int elements_1[1][20] = {{1, 2, 3, 4, 5, 6, 7, 8, 17, 14, 15, 16, 21, 18, 19, 20, 25, 22, 23, 24}};
    // int elements_1[1][8] = {{1, 2, 3, 4, 5, 6, 7, 8}};
    int elements_2[1][13] = {{5, 6, 7, 8, 9, 25, 22, 23, 24, 26, 27, 28, 29}};
    int elements_3[1][4] = {{6, 10, 7, 9}};
    int elements_4[1][6] = {{10, 6, 7, 13, 11, 12}};

    double xs[n_nodes] = {0, 3, 3, 0, 0, 3, 3, 0, 1, 3, 8, 8, 8, 3, 1.5, 0, 1.5, 3, 3, 0, 0, 3, 1.5, 0, 1.5, 0.5, 2, 2, 0.5};
    double ys[n_nodes] = {0, 0, 3, 3, 0, 0, 3, 3, 1, 1, 0, 3, 1, 1.5, 3, 1.5, 0, 0, 3, 3, 0, 1.5, 3, 1.5, 0, 0.5, 0.5, 2, 2};
    double zs[n_nodes] = {0, 0, 0, 0, 3, 3, 3, 3, 5, 5, 3, 3, 5, 0, 0, 0, 0, 1.5, 1.5, 1.5, 1.5, 3, 3, 3, 3, 4, 4, 4, 4};

    int sizeof_data = sizeof(double);
    int sizeof_geom = sizeof(double);
    const int exid = ex_create("four-p.e", EX_CLOBBER, &sizeof_data, &sizeof_geom);

    const int dim = 3;
    const int n_blocks = n_elems;
    const int n_node_sets = 0;
    const int n_side_sets = 0;
    int ierr = ex_put_init(exid, "mytitle", dim, n_nodes, n_elems, n_blocks,
                           n_node_sets, n_side_sets);
    assert(ierr == 0);

    // nodes:
    ierr = ex_put_coord(exid, xs, ys, zs);
    assert(ierr == 0);

    // block 0 (hex):
    ierr = ex_put_elem_block(exid, 1, "hex20", 1, 20, 0);
    assert(ierr == 0);
    // block 1 (pyramid):
    ierr = ex_put_elem_block(exid, 10, "pyramid13", 1, 13, 0);
    assert(ierr == 0);
    // block 2 (tet):
    ierr = ex_put_elem_block(exid, 100, "tet", 1, 4, 0);
    assert(ierr == 0);
    // block 3 (wedge):
    ierr = ex_put_elem_block(exid, 1000, "wedge", 1, 6, 0);
    assert(ierr == 0);

    // connectivity:
    ierr = ex_put_elem_conn(exid, 1, elements_1);
    assert(ierr == 0);
    ierr = ex_put_elem_conn(exid, 10, elements_2);
    assert(ierr == 0);
    ierr = ex_put_elem_conn(exid, 100, elements_3);
    assert(ierr == 0);
    ierr = ex_put_elem_conn(exid, 1000, elements_4);
    assert(ierr == 0);

    ierr = ex_close(exid);
    assert(ierr == 0);
}

Get things working with a nonzero codimension:

#include <exodusII.h>

#include <algorithm>
#include <cassert>
#include <cstring>

// Create a disk mesh with five quadrilaterals.
//
//  ____________________________
// |\                          /|
// | \                        / |
// |  \           3          /  |
// |   \                    /   |
// |    \                  /    |
// |     \                /     |
// |      \______________/      |
// |      |              |      |
// |      |              |      |
// |      |              |      |
// |   4  |      5       |   2  |
// |      |              |      |
// |      |______________|      |
// |      /              \      |
// |     /                \     |
// |    /                  \    |
// |   /                    \   |
// |  /          1           \  |
// | /                        \ |
// |/                          \|
// -----------------------------
//
// element 1 has external side sets 0, 1
// element 2 has external side sets 0, 1, 10
// element 3 has no external side sets
// element 4 has no external side set 0
//
// The inner element is in block 10 - the rest are in block 1.
int main()
{
    const int n_elems = 5;
    const int n_nodes = 8;
    int elements_1[n_elems - 1][4] = {
    {1, 2, 3, 4},
    {1, 4, 5, 6},
    {2, 8, 7, 3},
    {6, 5, 7, 8}};
    int elements_10[1][4] = {{4, 3, 7, 5}};

    double xs[n_nodes] = {0, 7, 5, 2, 2, 0, 5, 7};
    double ys[n_nodes] = {0, 0, 2, 2, 5, 7, 5, 7};

    int sizeof_data = sizeof(double);
    int sizeof_geom = sizeof(double);
    const int exid = ex_create("five-3d.e", EX_CLOBBER, &sizeof_data, &sizeof_geom);

    const int dim = 3;
    const int n_blocks = 2;
    const int n_node_sets = 0;
    const int n_side_sets = 3;
    int ierr = ex_put_init(exid, "mytitle", dim, n_nodes, n_elems, n_blocks,
                           n_node_sets, n_side_sets);
    assert(ierr == 0);

    // nodes:
    ierr = ex_put_coord(exid, xs, ys, xs);
    assert(ierr == 0);

    // element blocks:
    ierr = ex_put_elem_block(exid, 1, "quad", 4, 4, 0);
    assert(ierr == 0);
    ierr = ex_put_elem_block(exid, 10, "quad", 1, 4, 0);
    assert(ierr == 0);

    ierr = ex_put_elem_conn(exid, 10, elements_10);
    assert(ierr == 0);
    ierr = ex_put_elem_conn(exid, 1, elements_1);
    assert(ierr == 0);

    // side sets:
    ierr = ex_put_side_set_param(exid, 0, 3, 0);
    assert(ierr == 0);
    int sideset_0_elems[] = {1, 2, 4};
    int sideset_0_sides[] = {3, 4, 6};
    ierr = ex_put_side_set(exid, 0, sideset_0_elems, sideset_0_sides);
    assert(ierr == 0);

    ierr = ex_put_side_set_param(exid, 1, 2, 0);
    assert(ierr == 0);
    int sideset_1_elems[] = {1, 2};
    int sideset_1_sides[] = {3, 4};
    ierr = ex_put_side_set(exid, 1, sideset_1_elems, sideset_1_sides);
    assert(ierr == 0);

    ierr = ex_put_side_set_param(exid, 10, 1, 0);
    assert(ierr == 0);
    int sideset_10_elems[] = {2};
    int sideset_10_sides[] = {4};
    ierr = ex_put_side_set(exid, 10, sideset_10_elems, sideset_10_sides);
    assert(ierr == 0);

    ierr = ex_close(exid);
    assert(ierr == 0);
}

Check sidesets in 3D:

#include <exodusII.h>

#include <algorithm>
#include <cassert>
#include <cstring>

// Like writer-2 but with side sets.

int main()
{
    const int n_elems = 4;
    const int n_nodes = 13;
    int elements_1[1][8] = {{1, 2, 3, 4, 5, 6, 7, 8}};
    int elements_2[1][5] = {{5, 6, 7, 8, 9}};
    int elements_3[1][4] = {{6, 10, 7, 9}};
    int elements_4[1][6] = {{10, 6, 7, 13, 11, 12}};

    double xs[n_nodes] = {0, 3, 3, 0, 0, 3, 3, 0, 1, 3, 8, 8, 8};
    double ys[n_nodes] = {0, 0, 3, 3, 0, 0, 3, 3, 1, 1, 0, 3, 1};
    double zs[n_nodes] = {0, 0, 0, 0, 3, 3, 3, 3, 5, 5, 3, 3, 5};

    int sizeof_data = sizeof(double);
    int sizeof_geom = sizeof(double);
    const int exid = ex_create("four-sidesets.e", EX_CLOBBER, &sizeof_data, &sizeof_geom);

    const int dim = 3;
    const int n_blocks = n_elems;
    const int n_node_sets = 0;
    const int n_side_sets = 5;
    int ierr = ex_put_init(exid, "mytitle", dim, n_nodes, n_elems, n_blocks,
                           n_node_sets, n_side_sets);
    assert(ierr == 0);

    // nodes:
    ierr = ex_put_coord(exid, xs, ys, zs);
    assert(ierr == 0);

    // block 0 (hex):
    ierr = ex_put_elem_block(exid, 1, "hex", 1, 8, 0);
    assert(ierr == 0);
    // block 1 (pyramid):
    ierr = ex_put_elem_block(exid, 10, "pyramid", 1, 5, 0);
    assert(ierr == 0);
    // block 2 (tet):
    ierr = ex_put_elem_block(exid, 100, "tet", 1, 4, 0);
    assert(ierr == 0);
    // block 3 (wedge):
    ierr = ex_put_elem_block(exid, 1000, "wedge", 1, 6, 0);
    assert(ierr == 0);

    // connectivity:
    ierr = ex_put_elem_conn(exid, 1, elements_1);
    assert(ierr == 0);
    ierr = ex_put_elem_conn(exid, 10, elements_2);
    assert(ierr == 0);
    ierr = ex_put_elem_conn(exid, 100, elements_3);
    assert(ierr == 0);
    ierr = ex_put_elem_conn(exid, 1000, elements_4);
    assert(ierr == 0);

    // side sets:
    ierr = ex_put_side_set_param(exid, 1, 5, 0);
    assert(ierr == 0);
    int sideset_1_elems[] = {1, 1, 2, 3, 4};
    int sideset_1_sides[] = {1, 5, 1, 1, 1};
    ierr = ex_put_side_set(exid, 1, sideset_1_elems, sideset_1_sides);
    assert(ierr == 0);

    ierr = ex_put_side_set_param(exid, 2, 3, 0);
    assert(ierr == 0);
    int sideset_2_elems[] = {1, 3, 4};
    int sideset_2_sides[] = {2, 2, 2};
    ierr = ex_put_side_set(exid, 2, sideset_2_elems, sideset_2_sides);
    assert(ierr == 0);

    ierr = ex_put_side_set_param(exid, 3, 3, 0);
    assert(ierr == 0);
    int sideset_3_elems[] = {1, 2, 4};
    int sideset_3_sides[] = {3, 3, 3};
    ierr = ex_put_side_set(exid, 3, sideset_3_elems, sideset_3_sides);
    assert(ierr == 0);

    ierr = ex_put_side_set_param(exid, 4, 2, 0);
    assert(ierr == 0);
    int sideset_4_elems[] = {1, 2};
    int sideset_4_sides[] = {4, 4};
    ierr = ex_put_side_set(exid, 4, sideset_4_elems, sideset_4_sides);
    assert(ierr == 0);

    ierr = ex_put_side_set_param(exid, 5, 4, 0);
    assert(ierr == 0);
    int sideset_5_elems[] = {1, 1, 2, 4};
    int sideset_5_sides[] = {4, 5, 4, 5};
    ierr = ex_put_side_set(exid, 5, sideset_5_elems, sideset_5_sides);
    assert(ierr == 0);

    ierr = ex_close(exid);
    assert(ierr == 0);
}

4 years agoFunctions of hp::Refinement now only available for DoFHandler in hp mode. 11161/head
Marc Fehling [Tue, 3 Nov 2020 01:53:06 +0000 (18:53 -0700)]
Functions of hp::Refinement now only available for DoFHandler in hp mode.

4 years agoImprove VectorDataExchange::Full::reset_ghost_values 11156/head
Peter Munch [Tue, 10 Nov 2020 11:54:45 +0000 (12:54 +0100)]
Improve VectorDataExchange::Full::reset_ghost_values

4 years agoFix fe_face_evaluation_process_and_io for multiple components 11157/head
Peter Munch [Tue, 10 Nov 2020 16:23:15 +0000 (17:23 +0100)]
Fix fe_face_evaluation_process_and_io for multiple components

4 years agoMove n_vertices_to_type to reference_cell.h
David Wells [Tue, 27 Oct 2020 15:31:01 +0000 (11:31 -0400)]
Move n_vertices_to_type to reference_cell.h

4 years agoCheck for SEACAS support.
David Wells [Thu, 3 Sep 2020 16:58:01 +0000 (12:58 -0400)]
Check for SEACAS support.

We need it for ExodusII.

4 years agoMerge pull request #11151 from peterrum/SolverCGSM
Martin Kronbichler [Tue, 10 Nov 2020 08:12:22 +0000 (09:12 +0100)]
Merge pull request #11151 from peterrum/SolverCGSM

Fix sm-mode L:d:V for zero sized vectors

4 years agoMerge pull request #11109 from tjhei/mpi_comm_ref
David Wells [Sat, 7 Nov 2020 17:42:48 +0000 (12:42 -0500)]
Merge pull request #11109 from tjhei/mpi_comm_ref

pass MPI_Comm by const ref

4 years agoFix compute_shared_memory_contiguous_indices 11154/head
Peter Munch [Sat, 7 Nov 2020 17:22:50 +0000 (18:22 +0100)]
Fix compute_shared_memory_contiguous_indices

4 years agoFix SolverCG for sm-mode L:d:V 11151/head
Peter Munch [Fri, 6 Nov 2020 09:29:27 +0000 (10:29 +0100)]
Fix SolverCG for sm-mode L:d:V

4 years agoMerge pull request #11150 from peterrum/mpi_processes_within_communicator_use
David Wells [Fri, 6 Nov 2020 14:11:18 +0000 (09:11 -0500)]
Merge pull request #11150 from peterrum/mpi_processes_within_communicator_use

Use mpi_processes_within_communicator

4 years agoUse mpi_processes_within_communicator 11150/head
Peter Munch [Fri, 6 Nov 2020 08:05:54 +0000 (09:05 +0100)]
Use mpi_processes_within_communicator

4 years agoMerge pull request #11097 from peterrum/dof_indices_contiguous_sm_io
Peter Munch [Fri, 6 Nov 2020 07:21:34 +0000 (08:21 +0100)]
Merge pull request #11097 from peterrum/dof_indices_contiguous_sm_io

Use dof_indices_contiguous_sm in evaluation functions

4 years agoMerge pull request #11145 from mathsen/multigrid_inh_boundary_conditions
Timo Heister [Fri, 6 Nov 2020 02:21:24 +0000 (21:21 -0500)]
Merge pull request #11145 from mathsen/multigrid_inh_boundary_conditions

Adjusted mg_constrained_dofs for usage of own IndexSets

4 years agoMerge pull request #11131 from tamiko/add_a_test
Matthias Maier [Fri, 6 Nov 2020 01:12:39 +0000 (19:12 -0600)]
Merge pull request #11131 from tamiko/add_a_test

Transfinite interpolation: add a test

4 years agoindent 11131/head
Matthias Maier [Thu, 5 Nov 2020 21:46:18 +0000 (15:46 -0600)]
indent

4 years agoMerge pull request #11141 from peterrum/ImplementationMixedMesh
David Wells [Thu, 5 Nov 2020 21:03:46 +0000 (16:03 -0500)]
Merge pull request #11141 from peterrum/ImplementationMixedMesh

Add internal::TriangulationImplementation::ImplementationMixedMesh

4 years agoUpdate tests/manifold/transfinite_manifold_11.cc
Matthias Maier [Thu, 5 Nov 2020 19:40:40 +0000 (13:40 -0600)]
Update tests/manifold/transfinite_manifold_11.cc

Co-authored-by: Martin Kronbichler <kronbichler@lnm.mw.tum.de>
4 years agoDifferent fixes 11097/head
Peter Munch [Sun, 25 Oct 2020 20:21:54 +0000 (21:21 +0100)]
Different fixes

4 years agoMerge pull request #11147 from peterrum/simplify_categorize_by_boundary_ids
Martin Kronbichler [Thu, 5 Nov 2020 19:23:58 +0000 (20:23 +0100)]
Merge pull request #11147 from peterrum/simplify_categorize_by_boundary_ids

Simplify simplify_categorize_by_boundary_ids

4 years agoSimplify simplify_categorize_by_boundary_ids 11147/head
Peter Munch [Thu, 5 Nov 2020 14:38:49 +0000 (15:38 +0100)]
Simplify simplify_categorize_by_boundary_ids

4 years agoadded proposed changes 11145/head
Mathias Anselmann [Thu, 5 Nov 2020 12:52:41 +0000 (13:52 +0100)]
added proposed changes

4 years agoMerge pull request #11134 from luca-heltai/bug-anisotropic
Martin Kronbichler [Thu, 5 Nov 2020 09:57:35 +0000 (10:57 +0100)]
Merge pull request #11134 from luca-heltai/bug-anisotropic

Expose mesh loop bug for anisotropic grids.

4 years agoAdd internal::TriangulationImplementation::ImplementationMixedMesh 11141/head
Peter Munch [Wed, 4 Nov 2020 09:20:34 +0000 (10:20 +0100)]
Add internal::TriangulationImplementation::ImplementationMixedMesh

4 years agoMerge pull request #11140 from peterrum/tria_reference_type
David Wells [Wed, 4 Nov 2020 22:27:10 +0000 (17:27 -0500)]
Merge pull request #11140 from peterrum/tria_reference_type

Store reference_cell_types in Triangulation

4 years agounified both initialize() functions into one with default second argument
Mathias Anselmann [Wed, 4 Nov 2020 21:03:15 +0000 (22:03 +0100)]
unified both initialize() functions into one with default second argument

4 years agoMerge pull request #11143 from tjhei/step_7_double
Martin Kronbichler [Wed, 4 Nov 2020 20:33:13 +0000 (21:33 +0100)]
Merge pull request #11143 from tjhei/step_7_double

step-7: mark some ints as doubles

4 years agoMerge pull request #11144 from drwells/class-to-function
Wolfgang Bangerth [Wed, 4 Nov 2020 18:04:40 +0000 (11:04 -0700)]
Merge pull request #11144 from drwells/class-to-function

Label functions as such (and not as classes).

4 years agoAdjusted mg_constrained_dofs for usage of own IndexSet, so that the user can add...
Mathias Anselmann [Tue, 3 Nov 2020 11:51:59 +0000 (12:51 +0100)]
Adjusted mg_constrained_dofs for usage of own IndexSet, so that the user can add additional constrained DoFs to the MGConstrainedDoFs class.

4 years agoLabel functions as such (and not as classes). 11144/head
David Wells [Wed, 4 Nov 2020 15:44:56 +0000 (10:44 -0500)]
Label functions as such (and not as classes).

4 years agostep-7: mark some ints as doubles 11143/head
Timo Heister [Wed, 4 Nov 2020 13:44:16 +0000 (08:44 -0500)]
step-7: mark some ints as doubles

4 years agoStore reference_types in Triangulation 11140/head
Peter Munch [Tue, 3 Nov 2020 22:11:34 +0000 (23:11 +0100)]
Store reference_types in Triangulation

4 years agoMerge pull request #11139 from bangerth/invalid
Peter Munch [Wed, 4 Nov 2020 08:30:56 +0000 (09:30 +0100)]
Merge pull request #11139 from bangerth/invalid

Avoid the use of 'illegal' in error messages.

4 years agoMerge pull request #11123 from marcfehling/hp-capability-enabled
Peter Munch [Wed, 4 Nov 2020 05:34:40 +0000 (06:34 +0100)]
Merge pull request #11123 from marcfehling/hp-capability-enabled

Hide hp_capability_enabled parameter.

4 years agoTransfiniteInterpolation: also print point in test
Matthias Maier [Tue, 3 Nov 2020 14:32:43 +0000 (08:32 -0600)]
TransfiniteInterpolation: also print point in test

4 years agoTransfinite interpolation: add a test
Matthias Maier [Mon, 2 Nov 2020 23:16:11 +0000 (17:16 -0600)]
Transfinite interpolation: add a test

4 years agoAvoid the use of 'illegal' in error messages. 11139/head
Wolfgang Bangerth [Tue, 3 Nov 2020 20:13:06 +0000 (13:13 -0700)]
Avoid the use of 'illegal' in error messages.

There is nothing against the law anyone is trying to do, it's just not a
valid operation.

4 years agoMerge pull request #11137 from peterrum/mpi_processes_within_communicator
Martin Kronbichler [Tue, 3 Nov 2020 19:18:25 +0000 (20:18 +0100)]
Merge pull request #11137 from peterrum/mpi_processes_within_communicator

Introduce Utilities::MPI::mpi_processes_within_communicator

4 years agoMerge pull request #11136 from peterrum/initialize_indices_global_active_cell_index
Martin Kronbichler [Tue, 3 Nov 2020 19:18:09 +0000 (20:18 +0100)]
Merge pull request #11136 from peterrum/initialize_indices_global_active_cell_index

Use global_active_cell_index in MatrixFree::initialize_indices

4 years agoMerge pull request #11135 from peterrum/global_active_cell_index_comments
Martin Kronbichler [Tue, 3 Nov 2020 16:55:17 +0000 (17:55 +0100)]
Merge pull request #11135 from peterrum/global_active_cell_index_comments

Extend docu on global_active_cell_index

4 years agoMerge pull request #11098 from peterrum/vde_full
David Wells [Tue, 3 Nov 2020 16:40:17 +0000 (11:40 -0500)]
Merge pull request #11098 from peterrum/vde_full

Introduce VectorDataExchange::Full

4 years agoMerge pull request #11125 from lethe-cfd/update_ghost_particles
Martin Kronbichler [Tue, 3 Nov 2020 15:45:29 +0000 (16:45 +0100)]
Merge pull request #11125 from lethe-cfd/update_ghost_particles

Update ghost particles without rebuilding them

4 years agoIntroduce Utilities::MPI::mpi_processes_within_communicator 11137/head
Peter Munch [Tue, 3 Nov 2020 13:44:23 +0000 (14:44 +0100)]
Introduce Utilities::MPI::mpi_processes_within_communicator

4 years agoExpose mesh loop bug for anisotropic grids. 11134/head
Luca Heltai [Tue, 3 Nov 2020 09:33:55 +0000 (10:33 +0100)]
Expose mesh loop bug for anisotropic grids.

4 years agoUse global_active_cell_index in MatrixFree::initialize_indices 11136/head
Peter Munch [Tue, 3 Nov 2020 13:20:51 +0000 (14:20 +0100)]
Use global_active_cell_index in MatrixFree::initialize_indices

4 years agoExtend docu on global_active_cell_index 11135/head
Peter Munch [Tue, 3 Nov 2020 11:21:26 +0000 (12:21 +0100)]
Extend docu on global_active_cell_index

4 years agoIntroduce VectorDataExchange::Full and introduce 2nd communicator in MatrixFree 11098/head
Peter Munch [Sat, 24 Oct 2020 15:42:39 +0000 (17:42 +0200)]
Introduce VectorDataExchange::Full and introduce 2nd communicator in MatrixFree

4 years agoMerge pull request #11092 from peterrum/dof_indices_contiguous_sm
Martin Kronbichler [Tue, 3 Nov 2020 11:53:23 +0000 (12:53 +0100)]
Merge pull request #11092 from peterrum/dof_indices_contiguous_sm

MatrixFree: add DoFInfo::dof_indices_contiguous_sm

4 years agoMerge pull request #11103 from peterrum/simplex_q_gauss_1D
Martin Kronbichler [Tue, 3 Nov 2020 10:59:22 +0000 (11:59 +0100)]
Merge pull request #11103 from peterrum/simplex_q_gauss_1D

Pass n_q_points_1D to Simplex::QGauss

4 years agoMerge pull request #10490 from peterrum/cell_global_id
Martin Kronbichler [Tue, 3 Nov 2020 10:48:57 +0000 (11:48 +0100)]
Merge pull request #10490 from peterrum/cell_global_id

Give each cell a globally unique (level) ID

4 years agoMatrixFree: add DoFInfo::dof_indices_contiguous_sm 11092/head
Peter Munch [Fri, 23 Oct 2020 11:58:33 +0000 (13:58 +0200)]
MatrixFree: add DoFInfo::dof_indices_contiguous_sm

4 years agoMerge pull request #11126 from kronbichler/fix_transfinite_jacobian
Martin Kronbichler [Tue, 3 Nov 2020 08:00:33 +0000 (09:00 +0100)]
Merge pull request #11126 from kronbichler/fix_transfinite_jacobian

Transfinite interpolation: Fix refresh of Jacobian

4 years agoAdded unit test 11125/head
Bruno [Tue, 3 Nov 2020 01:56:10 +0000 (20:56 -0500)]
Added unit test
Improved documentation

4 years agoMerge pull request #11130 from mathsen/reorder_mg
Matthias Maier [Mon, 2 Nov 2020 23:10:02 +0000 (17:10 -0600)]
Merge pull request #11130 from mathsen/reorder_mg

set number_cache.n_global_dofs to the right size in MultiGrid scenario

4 years agoMerge pull request #11127 from kronbichler/transfinite_quadratic_approximation
Matthias Maier [Mon, 2 Nov 2020 23:09:45 +0000 (17:09 -0600)]
Merge pull request #11127 from kronbichler/transfinite_quadratic_approximation

Transfinite interpolation: inverse quadratic approximation in pull-back

4 years agoHide hp_capability_enabled parameter. 11123/head
Marc Fehling [Fri, 30 Oct 2020 00:30:34 +0000 (18:30 -0600)]
Hide hp_capability_enabled parameter.

4 years agoMerge pull request #11129 from tjhei/rotation_matrix_type_fix
Daniel Arndt [Mon, 2 Nov 2020 20:32:10 +0000 (15:32 -0500)]
Merge pull request #11129 from tjhei/rotation_matrix_type_fix

fix type in Physics rotation_matrix_2d and 3d

4 years agoPass n_q_points_1D to Simplex::QGauss 11103/head
Peter Munch [Sun, 25 Oct 2020 18:05:00 +0000 (19:05 +0100)]
Pass n_q_points_1D to Simplex::QGauss

4 years agoGive each cell a globally unique (level) ID 10490/head
Peter Munch [Mon, 26 Oct 2020 06:58:25 +0000 (07:58 +0100)]
Give each cell a globally unique (level) ID

4 years agofix type in Physics rotation_matrix_2d and 3d 11129/head
Timo Heister [Mon, 2 Nov 2020 19:19:18 +0000 (14:19 -0500)]
fix type in Physics rotation_matrix_2d and 3d

The values were computed as doubles, which means this function can not
be used with Number=float (no constructor for Tensor exists). Fix this.

4 years agoset number_cache.n_global_dofs to the right size in MultiGrid scenario 11130/head
Mathias Anselmann [Mon, 2 Nov 2020 18:11:23 +0000 (19:11 +0100)]
set number_cache.n_global_dofs to the right size in MultiGrid scenario

4 years agoMerge pull request #10439 from peterrum/tria_impl_merge
Martin Kronbichler [Mon, 2 Nov 2020 17:01:22 +0000 (18:01 +0100)]
Merge pull request #10439 from peterrum/tria_impl_merge

Introduce internal::TriangulationImplementation::Policy

4 years agoChangelog 11127/head
Martin Kronbichler [Sun, 1 Nov 2020 09:12:11 +0000 (10:12 +0100)]
Changelog

4 years agoTransfinite interpolation: Use inverse quadratic approximation for pull_back
Martin Kronbichler [Sun, 1 Nov 2020 09:09:04 +0000 (10:09 +0100)]
Transfinite interpolation: Use inverse quadratic approximation for pull_back

4 years agoTransfinite interpolation: Fix refresh of Jacobian 11126/head
Martin Kronbichler [Sat, 31 Oct 2020 18:10:06 +0000 (19:10 +0100)]
Transfinite interpolation: Fix refresh of Jacobian

4 years agoMerge pull request #11121 from drwells/pyramid-wedge-face-vertices
Peter Munch [Sat, 31 Oct 2020 16:36:00 +0000 (17:36 +0100)]
Merge pull request #11121 from drwells/pyramid-wedge-face-vertices

Implement face_to_cell_vertices for pyramids and wedges.

4 years agoFirst version of an update_ghost_particles
Bruno [Sat, 31 Oct 2020 16:25:07 +0000 (12:25 -0400)]
First version of an update_ghost_particles
Does not contain any modification to send_recv

4 years agoImplement face_to_cell_vertices for pyramids and wedges. 11121/head
David Wells [Fri, 30 Oct 2020 16:51:24 +0000 (12:51 -0400)]
Implement face_to_cell_vertices for pyramids and wedges.

4 years agoMerge pull request #11116 from masterleinad/fix_cudwrappers_used_objects
David Wells [Fri, 30 Oct 2020 21:17:53 +0000 (17:17 -0400)]
Merge pull request #11116 from masterleinad/fix_cudwrappers_used_objects

Fix multiple definitions for CUDAWrappes::internal::used_objects

4 years agopass MPI_Comm by const ref 11109/head
Timo Heister [Mon, 26 Oct 2020 13:27:13 +0000 (09:27 -0400)]
pass MPI_Comm by const ref

fixes #11107

4 years agoUpdate source/matrix_free/cuda_matrix_free.cu 11116/head
Daniel Arndt [Fri, 30 Oct 2020 15:49:43 +0000 (11:49 -0400)]
Update source/matrix_free/cuda_matrix_free.cu

Co-authored-by: David Wells <drwells@email.unc.edu>
4 years agoMerge pull request #11118 from drwells/fix-wedge-n_faces
Peter Munch [Fri, 30 Oct 2020 05:09:42 +0000 (06:09 +0100)]
Merge pull request #11118 from drwells/fix-wedge-n_faces

Fix Wedge::n_faces().

4 years agoFix Wedge::n_faces(). 11117/head 11118/head
David Wells [Thu, 29 Oct 2020 19:55:06 +0000 (15:55 -0400)]
Fix Wedge::n_faces().

Wedges have five faces.

4 years agoFix multiple definitions for CUDAWrappes::internal::used_objects
Daniel Arndt [Thu, 29 Oct 2020 19:29:09 +0000 (15:29 -0400)]
Fix multiple definitions for CUDAWrappes::internal::used_objects

4 years agoMerge pull request #11113 from kronbichler/avoid_invalid_reference
Martin Kronbichler [Thu, 29 Oct 2020 16:16:36 +0000 (17:16 +0100)]
Merge pull request #11113 from kronbichler/avoid_invalid_reference

Do not capture by reference in range-based for over IndexSet

4 years agoMerge pull request #11090 from eliasstudiert/simplex_write_svg
Martin Kronbichler [Thu, 29 Oct 2020 15:45:30 +0000 (16:45 +0100)]
Merge pull request #11090 from eliasstudiert/simplex_write_svg

Extend GridOut::write_svg() for simplices

4 years agoAnother one 11113/head
Martin Kronbichler [Thu, 29 Oct 2020 14:40:25 +0000 (15:40 +0100)]
Another one

4 years agoDo not capture by reference for iota_view
Martin Kronbichler [Thu, 29 Oct 2020 11:50:21 +0000 (12:50 +0100)]
Do not capture by reference for iota_view

4 years agoMerge pull request #11114 from kronbichler/remove_symmetric_tensor
David Wells [Thu, 29 Oct 2020 14:32:25 +0000 (10:32 -0400)]
Merge pull request #11114 from kronbichler/remove_symmetric_tensor

Switch SymmetricTensor -> Tensor for better performance

4 years agoSwitch SymmetricTensor -> Tensor for better performance. 11114/head
Martin Kronbichler [Thu, 29 Oct 2020 11:17:39 +0000 (12:17 +0100)]
Switch SymmetricTensor -> Tensor for better performance.

4 years agoRemove yet another capture by reference in IndexSet
Martin Kronbichler [Thu, 29 Oct 2020 11:05:14 +0000 (12:05 +0100)]
Remove yet another capture by reference in IndexSet

4 years agoRemove another capture by reference
Martin Kronbichler [Thu, 29 Oct 2020 10:05:32 +0000 (11:05 +0100)]
Remove another capture by reference

4 years agoDo not use a reference in range-based for over IndexSet
Martin Kronbichler [Thu, 29 Oct 2020 09:29:07 +0000 (10:29 +0100)]
Do not use a reference in range-based for over IndexSet

4 years agoMerge pull request #11074 from peterrum/ldv_shmem
Martin Kronbichler [Thu, 29 Oct 2020 08:59:18 +0000 (09:59 +0100)]
Merge pull request #11074 from peterrum/ldv_shmem

Introduce MPI-3 shared-memory capabilities in L:d:V

4 years agoMerge pull request #11104 from lethe-cfd/exchange_ghost_particles_optimization
Martin Kronbichler [Thu, 29 Oct 2020 08:57:24 +0000 (09:57 +0100)]
Merge pull request #11104 from lethe-cfd/exchange_ghost_particles_optimization

Exchange ghost particles optimization by not rebuilding vertex_to_neighbor_subdomain

4 years agoMerge pull request #11085 from kronbichler/inverse_quadratic_approximation
David Wells [Wed, 28 Oct 2020 21:25:14 +0000 (17:25 -0400)]
Merge pull request #11085 from kronbichler/inverse_quadratic_approximation

Inverse quadratic approximation for MappingQ::real_to_unit_cell

4 years agoIntroduce MPI-3 shared-memory capabilities in L:d:V 11074/head
Peter Munch [Wed, 21 Oct 2020 14:26:00 +0000 (16:26 +0200)]
Introduce MPI-3 shared-memory capabilities in L:d:V

4 years agoMerge pull request #11099 from jppelteret/step_44_update_assembly_01
Martin Kronbichler [Wed, 28 Oct 2020 13:38:53 +0000 (14:38 +0100)]
Merge pull request #11099 from jppelteret/step_44_update_assembly_01

Step 44: Unify assembly loop and introduce an optimisation


In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.