]>
https://gitweb.dealii.org/ - dealii.git/log
Marc Fehling [Tue, 3 Nov 2020 02:03:07 +0000 (19:03 -0700)]
Avoid using deprecated DoFHandler functions in examples.
Marc Fehling [Tue, 10 Nov 2020 21:30:14 +0000 (14:30 -0700)]
Avoid using deprecated DoFHandler functions in source.
Marc Fehling [Tue, 3 Nov 2020 01:51:36 +0000 (18:51 -0700)]
Slim interface for DoFHandler initialization.
Daniel Arndt [Tue, 17 Nov 2020 16:56:31 +0000 (11:56 -0500)]
Merge pull request #11193 from bangerth/fe-values
Better document a bunch of functions.
Martin Kronbichler [Tue, 17 Nov 2020 12:35:53 +0000 (13:35 +0100)]
Merge pull request #11177 from peterrum/feevaluation_assert_verbose
Make assert more verbose in FEEvaluation
Martin Kronbichler [Tue, 17 Nov 2020 12:28:35 +0000 (13:28 +0100)]
Merge pull request #11192 from bangerth/notation
Use upper-case letters for vectors in the documentation.
Wolfgang Bangerth [Tue, 17 Nov 2020 01:00:45 +0000 (18:00 -0700)]
Better document a bunch of functions.
Wolfgang Bangerth [Tue, 17 Nov 2020 00:38:12 +0000 (17:38 -0700)]
Use upper-case letters for vectors in the documentation.
Specifically, here use 'F' instead of 'f' as that is also the letters used in the
detailed documentation of the function we're referring to.
Peter Munch [Mon, 16 Nov 2020 21:16:00 +0000 (22:16 +0100)]
Merge pull request #11171 from marcfehling/deprecate-hpdofhandler
Deprecate hp::DoFHandler.
Marc Fehling [Fri, 13 Nov 2020 02:40:20 +0000 (19:40 -0700)]
Prefer basic DoFHandler over deprecated hp::DoFHandler.
Marc Fehling [Fri, 13 Nov 2020 02:43:09 +0000 (19:43 -0700)]
Deprecate hp::DoFHandler.
Added missing deprecate flags in matrix_free.h.
Added DEAL_II_*_EXTRA_DIAGNOSTICS pragmas in matrix_free.h
to avoid deprecation warnings during CI.
Bruno Turcksin [Mon, 16 Nov 2020 01:24:23 +0000 (20:24 -0500)]
Merge pull request #11187 from peterrum/step-67-typo
Fix typo in step 67
Peter Munch [Sun, 15 Nov 2020 15:35:01 +0000 (16:35 +0100)]
Fix typo in step 67
Peter Munch [Thu, 12 Nov 2020 15:51:22 +0000 (16:51 +0100)]
Make assert more verbose in FEEvaluation
David Wells [Sat, 14 Nov 2020 14:10:36 +0000 (09:10 -0500)]
Merge pull request #11184 from kronbichler/clean_up_macro_cell
Avoid name macro_cell in matrix-free implementation
Martin Kronbichler [Sat, 14 Nov 2020 13:54:27 +0000 (14:54 +0100)]
Merge pull request #11182 from marcfehling/rm-dhtype-dataentry
Remove DoFHandlerType from internal::DataOutImplementation::{DataEntryBase|DataEntry|MGDataEntry}.
Martin Kronbichler [Sat, 14 Nov 2020 11:50:08 +0000 (12:50 +0100)]
Avoid name macro_cell in matrix-free implementation
Martin Kronbichler [Sat, 14 Nov 2020 09:58:13 +0000 (10:58 +0100)]
Merge pull request #11183 from tjhei/mf_deprecate_macro_cells
MatrixFree: deprecate n_macro_cells
Peter Munch [Sat, 14 Nov 2020 09:12:28 +0000 (10:12 +0100)]
Merge pull request #11181 from marcfehling/deprecate-mf-get_dof_handler
Deprecate MatrixFree::get_dof_handler.
Marc Fehling [Tue, 10 Nov 2020 06:55:08 +0000 (23:55 -0700)]
Deprecate MatrixFree::get_dof_handler.
Removing the instantiation will throw an error if someone writes
matrix_free.template get_dof_handler<DoFHandler<dim>>();
which will probably never happen as the default template is way more convenient.
Timo Heister [Sat, 14 Nov 2020 03:40:05 +0000 (22:40 -0500)]
MatrixFree: deprecate n_macro_cells
For the longest time we had n_macro_cells() and n_cell_batches() return
the same thing.
While n_cell_batches() has fewer uses (27 vs 136), I find the term
"macro cell" confusing and incorrect.
Marc Fehling [Sat, 14 Nov 2020 02:31:36 +0000 (19:31 -0700)]
Remove DoFHandlerType from internal::DataOutImplementation::{DataEntryBase|DataEntry|MGDataEntry}.
Peter Munch [Fri, 13 Nov 2020 20:30:13 +0000 (21:30 +0100)]
Merge pull request #11180 from peterrum/mpicomm_missing_reference
Add missing const MPI_Comm &
Jean-Paul Pelteret [Fri, 13 Nov 2020 19:59:31 +0000 (20:59 +0100)]
Merge pull request #11128 from jppelteret/ad_helper_bug_fix_01
ADHelpers: Fix indexing for symm tensor extractor
Peter Munch [Fri, 13 Nov 2020 19:10:58 +0000 (20:10 +0100)]
Add missing const MPI_Comm &
Martin Kronbichler [Fri, 13 Nov 2020 17:48:39 +0000 (18:48 +0100)]
Merge pull request #11168 from peterrum/mf_quadrature_dim
Make MatrixFree compile for arbitrary dim quadrature rules
David Wells [Fri, 13 Nov 2020 16:03:55 +0000 (11:03 -0500)]
Merge pull request #11176 from peterrum/qcollection_1D
QCollection<dim> accept Quadrature<1>
David Wells [Fri, 13 Nov 2020 15:43:17 +0000 (10:43 -0500)]
Merge pull request #11169 from peterrum/mf_reinit_mapping_default_mapping
Deprecate MatrixFree::reinit() functions with default Mapping argument
Peter Munch [Wed, 11 Nov 2020 22:11:17 +0000 (23:11 +0100)]
Deprecate MatrixFree::reinit() functions with default Mapping argument
Peter Munch [Thu, 12 Nov 2020 13:01:23 +0000 (14:01 +0100)]
Make MatrixFree compile for arbitrary dim quadrature rules
Peter Munch [Fri, 13 Nov 2020 10:49:02 +0000 (11:49 +0100)]
Merge pull request #11179 from peterrum/step37-update-docu
Step-37: small update to the documentation
Martin Kronbichler [Fri, 13 Nov 2020 08:32:30 +0000 (09:32 +0100)]
Merge pull request #11159 from mathsen/mg_parallel_Cuthill_Mc_Kee
parallel running version of multigrid Cuthill McKee reordering
Martin Kronbichler [Fri, 13 Nov 2020 08:31:29 +0000 (09:31 +0100)]
Merge pull request #11163 from peterrum/particles_partitioner
Move GhostParticlePartitioner
Peter Munch [Fri, 13 Nov 2020 08:14:53 +0000 (09:14 +0100)]
Step-37: small update to the documentation
Jean-Paul Pelteret [Thu, 12 Nov 2020 22:14:08 +0000 (23:14 +0100)]
Added a changelog
Timo Heister [Thu, 12 Nov 2020 13:06:07 +0000 (08:06 -0500)]
Merge pull request #11175 from peterrum/fix_type_pdt
Fix typo
Peter Munch [Thu, 12 Nov 2020 11:49:51 +0000 (12:49 +0100)]
QCollection<dim> accept Quadrature<1>
Peter Munch [Thu, 12 Nov 2020 11:17:25 +0000 (12:17 +0100)]
Fix typo
Peter Munch [Wed, 11 Nov 2020 17:25:30 +0000 (18:25 +0100)]
Move GhostParticlePartitioner
Martin Kronbichler [Thu, 12 Nov 2020 08:42:15 +0000 (09:42 +0100)]
Merge pull request #11170 from marcfehling/deprecate-feoperator
Deprecated FiniteElement::operator[].
Marc Fehling [Thu, 12 Nov 2020 02:37:05 +0000 (19:37 -0700)]
Deprecated FiniteElement::operator[].
Timo Heister [Wed, 11 Nov 2020 20:09:27 +0000 (15:09 -0500)]
Merge pull request #11164 from peterrum/DEAL_II_MPI_VERSION_GTE
Define DEAL_II_MPI_VERSION_GTE also for serial compilation
Peter Munch [Wed, 11 Nov 2020 20:01:54 +0000 (21:01 +0100)]
Merge pull request #11165 from mschreter/fe_evaluation_fix_comment
Fix typo in class documentation of "FEEvaluation"
Magdalena Schreter [Wed, 11 Nov 2020 19:40:15 +0000 (20:40 +0100)]
fix typo in class documentation of FEEvaluation
Peter Munch [Wed, 11 Nov 2020 17:35:14 +0000 (18:35 +0100)]
Define DEAL_II_MPI_VERSION_GTE also for serial compilation
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.
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
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
Mathias Anselmann [Wed, 11 Nov 2020 11:26:28 +0000 (12:26 +0100)]
Added test for extract_locally_active_level_dofs and applied changes proposed by kronbichler
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
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
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
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
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.
Peter Munch [Wed, 11 Nov 2020 10:09:33 +0000 (11:09 +0100)]
Add reference to skew-symmetric implementation in step-67
Mathias Anselmann [Wed, 11 Nov 2020 09:33:42 +0000 (10:33 +0100)]
save a copy of the locally owned DoFs IndexSet and use a reference instead
Mathias Anselmann [Tue, 10 Nov 2020 23:24:22 +0000 (00:24 +0100)]
applied proposed changes by masterleinad
Marc Fehling [Tue, 3 Nov 2020 01:56:29 +0000 (18:56 -0700)]
Rework DoFHandler connections to underlying Triangulation.
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
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);
}
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.
Mathias Anselmann [Tue, 10 Nov 2020 18:11:10 +0000 (19:11 +0100)]
parallel running version of multigrid Cuthill McKee reordering
Peter Munch [Tue, 10 Nov 2020 11:54:45 +0000 (12:54 +0100)]
Improve VectorDataExchange::Full::reset_ghost_values
Peter Munch [Tue, 10 Nov 2020 16:23:15 +0000 (17:23 +0100)]
Fix fe_face_evaluation_process_and_io for multiple components
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 [Sat, 7 Nov 2020 17:22:50 +0000 (18:22 +0100)]
Fix compute_shared_memory_contiguous_indices
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
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.