]>
https://gitweb.dealii.org/ - dealii.git/log
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);
}
David Wells [Tue, 27 Oct 2020 15:31:01 +0000 (11:31 -0400)]
Move n_vertices_to_type to reference_cell.h
David Wells [Thu, 3 Sep 2020 16:58:01 +0000 (12:58 -0400)]
Check for SEACAS support.
We need it for ExodusII.
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
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
Peter Munch [Fri, 6 Nov 2020 09:29:27 +0000 (10:29 +0100)]
Fix SolverCG for sm-mode L:d:V
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
Peter Munch [Fri, 6 Nov 2020 08:05:54 +0000 (09:05 +0100)]
Use mpi_processes_within_communicator
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
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
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
Matthias Maier [Thu, 5 Nov 2020 21:46:18 +0000 (15:46 -0600)]
indent
David Wells [Thu, 5 Nov 2020 21:03:46 +0000 (16:03 -0500)]
Merge pull request #11141 from peterrum/ImplementationMixedMesh
Add internal::TriangulationImplementation::ImplementationMixedMesh
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>
Peter Munch [Sun, 25 Oct 2020 20:21:54 +0000 (21:21 +0100)]
Different fixes
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
Peter Munch [Thu, 5 Nov 2020 14:38:49 +0000 (15:38 +0100)]
Simplify simplify_categorize_by_boundary_ids
Mathias Anselmann [Thu, 5 Nov 2020 12:52:41 +0000 (13:52 +0100)]
added proposed changes
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.
Peter Munch [Wed, 4 Nov 2020 09:20:34 +0000 (10:20 +0100)]
Add internal::TriangulationImplementation::ImplementationMixedMesh
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
Mathias Anselmann [Wed, 4 Nov 2020 21:03:15 +0000 (22:03 +0100)]
unified both initialize() functions into one with default second argument
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
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).
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.
David Wells [Wed, 4 Nov 2020 15:44:56 +0000 (10:44 -0500)]
Label functions as such (and not as classes).
Timo Heister [Wed, 4 Nov 2020 13:44:16 +0000 (08:44 -0500)]
step-7: mark some ints as doubles
Peter Munch [Tue, 3 Nov 2020 22:11:34 +0000 (23:11 +0100)]
Store reference_types in Triangulation
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.
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.
Matthias Maier [Tue, 3 Nov 2020 14:32:43 +0000 (08:32 -0600)]
TransfiniteInterpolation: also print point in test
Matthias Maier [Mon, 2 Nov 2020 23:16:11 +0000 (17:16 -0600)]
Transfinite interpolation: add a test
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.
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
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
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
David Wells [Tue, 3 Nov 2020 16:40:17 +0000 (11:40 -0500)]
Merge pull request #11098 from peterrum/vde_full
Introduce VectorDataExchange::Full
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
Peter Munch [Tue, 3 Nov 2020 13:44:23 +0000 (14:44 +0100)]
Introduce Utilities::MPI::mpi_processes_within_communicator
Luca Heltai [Tue, 3 Nov 2020 09:33:55 +0000 (10:33 +0100)]
Expose mesh loop bug for anisotropic grids.
Peter Munch [Tue, 3 Nov 2020 13:20:51 +0000 (14:20 +0100)]
Use global_active_cell_index in MatrixFree::initialize_indices
Peter Munch [Tue, 3 Nov 2020 11:21:26 +0000 (12:21 +0100)]
Extend docu on global_active_cell_index
Peter Munch [Sat, 24 Oct 2020 15:42:39 +0000 (17:42 +0200)]
Introduce VectorDataExchange::Full and introduce 2nd communicator in MatrixFree
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
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
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
Peter Munch [Fri, 23 Oct 2020 11:58:33 +0000 (13:58 +0200)]
MatrixFree: add DoFInfo::dof_indices_contiguous_sm
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
Bruno [Tue, 3 Nov 2020 01:56:10 +0000 (20:56 -0500)]
Added unit test
Improved documentation
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
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
Marc Fehling [Fri, 30 Oct 2020 00:30:34 +0000 (18:30 -0600)]
Hide hp_capability_enabled parameter.
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
Peter Munch [Sun, 25 Oct 2020 18:05:00 +0000 (19:05 +0100)]
Pass n_q_points_1D to Simplex::QGauss
Peter Munch [Mon, 26 Oct 2020 06:58:25 +0000 (07:58 +0100)]
Give each cell a globally unique (level) ID
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.
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
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
Martin Kronbichler [Sun, 1 Nov 2020 09:12:11 +0000 (10:12 +0100)]
Changelog
Martin Kronbichler [Sun, 1 Nov 2020 09:09:04 +0000 (10:09 +0100)]
Transfinite interpolation: Use inverse quadratic approximation for pull_back
Martin Kronbichler [Sat, 31 Oct 2020 18:10:06 +0000 (19:10 +0100)]
Transfinite interpolation: Fix refresh of Jacobian
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.
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
David Wells [Fri, 30 Oct 2020 16:51:24 +0000 (12:51 -0400)]
Implement face_to_cell_vertices for pyramids and wedges.
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
Timo Heister [Mon, 26 Oct 2020 13:27:13 +0000 (09:27 -0400)]
pass MPI_Comm by const ref
fixes #11107
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>
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().
David Wells [Thu, 29 Oct 2020 19:55:06 +0000 (15:55 -0400)]
Fix Wedge::n_faces().
Wedges have five faces.
Daniel Arndt [Thu, 29 Oct 2020 19:29:09 +0000 (15:29 -0400)]
Fix multiple definitions for CUDAWrappes::internal::used_objects
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
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
Martin Kronbichler [Thu, 29 Oct 2020 14:40:25 +0000 (15:40 +0100)]
Another one
Martin Kronbichler [Thu, 29 Oct 2020 11:50:21 +0000 (12:50 +0100)]
Do not capture by reference for iota_view
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
Martin Kronbichler [Thu, 29 Oct 2020 11:17:39 +0000 (12:17 +0100)]
Switch SymmetricTensor -> Tensor for better performance.
Martin Kronbichler [Thu, 29 Oct 2020 11:05:14 +0000 (12:05 +0100)]
Remove yet another capture by reference in IndexSet
Martin Kronbichler [Thu, 29 Oct 2020 10:05:32 +0000 (11:05 +0100)]
Remove another capture by reference
Martin Kronbichler [Thu, 29 Oct 2020 09:29:07 +0000 (10:29 +0100)]
Do not use a reference in range-based for over IndexSet
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
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
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
Peter Munch [Wed, 21 Oct 2020 14:26:00 +0000 (16:26 +0200)]
Introduce MPI-3 shared-memory capabilities in L:d:V
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
Martin Kronbichler [Wed, 28 Oct 2020 08:47:10 +0000 (09:47 +0100)]
Construct approximation by two sets of points.
Also better document some variables and mark constant variables as const.
Elias Dejene [Fri, 23 Oct 2020 08:23:26 +0000 (10:23 +0200)]
Extend GridOut::write_svg() for simplices
Add output for ctest. Replace forgotten write_eps by write_svg.
Add comment for quad-case. Avoid writing extra point in case of simplices.
Update ctest source-file.
Replace post-increment by pre-increment.
Bruno Blais [Wed, 28 Oct 2020 13:19:41 +0000 (09:19 -0400)]
Change update flag to update the new flag. I also provisioned for new possible flags by just clearing the entire last hex character.
Martin Kronbichler [Thu, 22 Oct 2020 14:37:50 +0000 (16:37 +0200)]
Introduce inverse quadratic approximation for MappingQ::real_to_unit_cell
Bruno [Tue, 27 Oct 2020 13:13:58 +0000 (09:13 -0400)]
Added the missing flag update
Bruno [Mon, 26 Oct 2020 15:12:03 +0000 (11:12 -0400)]
- Fixed formatting of comments
- Added . at the end of sentences in the comments.
Bruno [Sun, 25 Oct 2020 18:55:28 +0000 (14:55 -0400)]
Fixed indentation
Bruno [Sun, 25 Oct 2020 18:39:22 +0000 (14:39 -0400)]
Added vertex_to_neighbhor_subdomain to cache and use it therein the
particle_handler
Jean-Paul Pelteret [Sat, 24 Oct 2020 19:51:46 +0000 (21:51 +0200)]
Update step-44: Further optimise assembly loop
Martin Kronbichler [Wed, 28 Oct 2020 08:57:54 +0000 (09:57 +0100)]
Merge pull request #11057 from bangerth/doc-19
Update documentation of PropertyPool.
Martin Kronbichler [Wed, 28 Oct 2020 08:56:40 +0000 (09:56 +0100)]
Merge pull request #11073 from bangerth/doc-20
Better document the conceptual idea of FESystem.
Martin Kronbichler [Wed, 28 Oct 2020 08:47:23 +0000 (09:47 +0100)]
Merge pull request #11110 from bangerth/fe_q
Better document a constructor of FE_Q.
Martin Kronbichler [Wed, 28 Oct 2020 08:42:33 +0000 (09:42 +0100)]
Merge pull request #11111 from bangerth/particles
Make sure particles also copy their properties when switching property pools.
Martin Kronbichler [Wed, 28 Oct 2020 08:39:26 +0000 (09:39 +0100)]
Merge pull request #11112 from bangerth/move
Micro-optimization: Use move semantics in one place.
Wolfgang Bangerth [Tue, 27 Oct 2020 17:21:32 +0000 (11:21 -0600)]
Better document a constructor of FE_Q.
Wolfgang Bangerth [Tue, 27 Oct 2020 20:58:17 +0000 (14:58 -0600)]
Micro-optimization: Use move semantics in one place.
This is the last use of the variable in this location -- might as well move instead of
copy it.
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.