]> https://gitweb.dealii.org/ - dealii.git/log
dealii.git
7 years agoMerge pull request #4547 from bangerth/dofhandler-cleanup-2
Martin Kronbichler [Mon, 26 Jun 2017 19:38:24 +0000 (21:38 +0200)]
Merge pull request #4547 from bangerth/dofhandler-cleanup-2

Last DoFHandlerPolicy updates for now.

7 years agoDo not derive the ParallelShared policy from the Sequential one. 4547/head
Wolfgang Bangerth [Mon, 26 Jun 2017 07:34:02 +0000 (01:34 -0600)]
Do not derive the ParallelShared policy from the Sequential one.

The derivation was slightly contrived, but is not in fact useful any more since
the code has been refactored in ways that allow breaking the derivation and
just calling in ParallelShared what is also called in Sequential. In fact, the
code may have even become a bit shorter that way.

7 years agoParallelize the action of the update_all_*_cell_dof_indices_caches() functions.
Wolfgang Bangerth [Mon, 26 Jun 2017 12:44:57 +0000 (06:44 -0600)]
Parallelize the action of the update_all_*_cell_dof_indices_caches() functions.

7 years agoRefactor some code.
Wolfgang Bangerth [Mon, 26 Jun 2017 07:04:49 +0000 (01:04 -0600)]
Refactor some code.

Specifically, break out those places where we update the cell DoF index
caches into two separate functions.

7 years agoMerge pull request #4546 from bangerth/dofhandler-cleanup-2
Martin Kronbichler [Mon, 26 Jun 2017 08:20:13 +0000 (10:20 +0200)]
Merge pull request #4546 from bangerth/dofhandler-cleanup-2

More DoFHandlerPolicy cleanups.

7 years agoMerge pull request #4545 from bangerth/index-set-cleanup
Denis Davydov [Mon, 26 Jun 2017 07:10:45 +0000 (09:10 +0200)]
Merge pull request #4545 from bangerth/index-set-cleanup

Reindent and reformat parts of index_set.h.

7 years agoRemove an argument to a function that was no longer used. 4546/head
Wolfgang Bangerth [Mon, 26 Jun 2017 05:43:34 +0000 (23:43 -0600)]
Remove an argument to a function that was no longer used.

Specifically, it allowed to start enumerating DoFs at something other than zero.
There was a time when we allowed that, but that possibility was removed
several years ago.

The corresponding argument to distribute_mg_dofs() was removed a few days ago,
but it was accidently left on distribute_dofs().

7 years agoSimplify code by using new NumberCache constructors.
Wolfgang Bangerth [Sat, 24 Jun 2017 08:22:40 +0000 (02:22 -0600)]
Simplify code by using new NumberCache constructors.

7 years agoIntroduce new constructors for NumberCache.
Wolfgang Bangerth [Sat, 24 Jun 2017 08:22:25 +0000 (02:22 -0600)]
Introduce new constructors for NumberCache.

7 years agoReindent and reformat parts of index_set.h. 4545/head
Wolfgang Bangerth [Sun, 25 Jun 2017 02:17:26 +0000 (20:17 -0600)]
Reindent and reformat parts of index_set.h.

No functional changes, just beautify the contents of this file somewhat.

7 years agoMerge pull request #4543 from bangerth/complete-index-set
Martin Kronbichler [Sun, 25 Jun 2017 12:42:10 +0000 (14:42 +0200)]
Merge pull request #4543 from bangerth/complete-index-set

Compress the result of complete_index_set().

7 years agoMerge pull request #4538 from bangerth/dofhandler-cleanup
Martin Kronbichler [Sun, 25 Jun 2017 12:41:11 +0000 (14:41 +0200)]
Merge pull request #4538 from bangerth/dofhandler-cleanup

Further DoFHandlerPolicy cleanups.

7 years agoMerge pull request #4544 from bangerth/suppress-warning
Denis Davydov [Sun, 25 Jun 2017 07:22:12 +0000 (09:22 +0200)]
Merge pull request #4544 from bangerth/suppress-warning

Suppress a warning.

7 years agoSuppress a warning. 4544/head
Wolfgang Bangerth [Sun, 25 Jun 2017 01:42:37 +0000 (19:42 -0600)]
Suppress a warning.

The compiler warns about the line
  header_ += gzip::magic::id2;                   // ID2.
deep in BOOST when writing the header for a gzip-compressed block of data. This
is because (i) gzip::magic::id2 is declared as an int, and (ii) has a value
greater than what a *signed char* can store, i.e., greater than 127. Furthermore,
std::string::operator+ takes a 'char', which may or may not be unsigned but
apparently on my system is signed. So we get a warning about overflow.

The only reasonable way to deal with this is to do the casting explicitly.

7 years agoAdd a changelog entry. 4543/head
Wolfgang Bangerth [Sun, 25 Jun 2017 01:32:18 +0000 (19:32 -0600)]
Add a changelog entry.

7 years agoCompress the result of complete_index_set().
Wolfgang Bangerth [Sun, 25 Jun 2017 01:32:02 +0000 (19:32 -0600)]
Compress the result of complete_index_set().

7 years agoMerge pull request #4542 from drwells/attain-vs-obtain
Bruno Turcksin [Sat, 24 Jun 2017 21:40:56 +0000 (17:40 -0400)]
Merge pull request #4542 from drwells/attain-vs-obtain

Grammar: clarify obtain vs. attain.

7 years agoGrammar: clarify obtain vs. attain. 4542/head
David Wells [Sat, 24 Jun 2017 14:35:27 +0000 (10:35 -0400)]
Grammar: clarify obtain vs. attain.

Attain and obtain are nearly, but not quite, synonyms: 'attain' implies
achievement or accomplishment while 'obtain' just implies
ownership. This patch fixes our errant usage of 'attain' (one comment
also had a logic error, which I fixed).

7 years agoMerge pull request #4541 from kronbichler/fix_tests
Bruno Turcksin [Fri, 23 Jun 2017 19:48:43 +0000 (15:48 -0400)]
Merge pull request #4541 from kronbichler/fix_tests

Fix test output for two tests

7 years agoAdd another output file for Trilinos 12.10. 4541/head
Martin Kronbichler [Fri, 23 Jun 2017 17:51:13 +0000 (19:51 +0200)]
Add another output file for Trilinos 12.10.

7 years agoAdjust test output.
Martin Kronbichler [Fri, 23 Jun 2017 17:50:30 +0000 (19:50 +0200)]
Adjust test output.

7 years agoConvert the final policy function. 4538/head
Wolfgang Bangerth [Fri, 23 Jun 2017 15:52:20 +0000 (09:52 -0600)]
Convert the final policy function.

Also let the renumber_dofs() functions return the NumberCache, rather than
doing so via a reference argument. No drama this time.

7 years agoRemove an argument to a function that was no longer used.
Wolfgang Bangerth [Fri, 23 Jun 2017 15:05:42 +0000 (09:05 -0600)]
Remove an argument to a function that was no longer used.

Specifically, it allowed to start enumerating DoFs at something other than zero.
There was a time when we allowed that, but that possibility was removed
several years ago.

7 years agoMerge pull request #4458 from nfehn/master
Martin Kronbichler [Fri, 23 Jun 2017 14:59:37 +0000 (16:59 +0200)]
Merge pull request #4458 from nfehn/master

Initialization of Chebyshev smoother

7 years agoLet DoFHandler policy classes return the NumberCache also in distribute_mg_dofs().
Wolfgang Bangerth [Fri, 23 Jun 2017 14:58:16 +0000 (08:58 -0600)]
Let DoFHandler policy classes return the NumberCache also in distribute_mg_dofs().

This follows the same pattern as a previous commit. However, it involves less
drama, with the exception of an innocent assertion that had to be removed
(see the last commit). Other than that, everything seems to work.

7 years agoRemove an assertion in 3 related functions.
Wolfgang Bangerth [Fri, 23 Jun 2017 14:56:10 +0000 (08:56 -0600)]
Remove an assertion in 3 related functions.

The assertion gets in the way of the following commit because it tests
a condition that at the time when we want to call this function is not
yet satisfied. However, I've convinced myself that if the DoFHandler
is truly not set up at all (as the assertion wants to check), that
the calls further down in the function will fail to work as well. In
other words, one will get *some* kind of error.

7 years agooutput of tests adjusted 4458/head
Niklas Fehn [Fri, 23 Jun 2017 13:36:56 +0000 (15:36 +0200)]
output of tests adjusted

7 years agoLet the DoFHandler policy classes' distribute_dofs() return the NumberCache.
Wolfgang Bangerth [Fri, 23 Jun 2017 13:09:53 +0000 (07:09 -0600)]
Let the DoFHandler policy classes' distribute_dofs() return the NumberCache.

In times of move operators, there is really no reason why these functions should
return the NumberCache object by reference, rather than by value. We make this
slightly more efficient by providing (defaulted) move operations to
NumberCache.

However, this change uncovered a subtle problem that sooner or later would
certainly have tripped someone up: If any of the policy classes call
any function that relies on the correctness of the number cache of the
DoFHandler object being worked on, then this is likely going to fail.
Indeed, the implementation of distribute_dofs() for shared triangulations
has this problem by calling some of the DoFTools functions that query
properties of the DoFHandler that aren't all completely consistent
yet internally.

This happened to work -- more or less by design -- because the
NumberCache object that the DoFHandler passes to distribute_dofs()
by reference is the one that belongs to the DoFHandler, and
distribute_dofs() makes sure that it sets the one member that is
necessary to the correct value before calling the DoFTools function.
This can only properly be described as 'brittle': small changes to
the code will make this fail, and it is not obvious why this works
or doesn't.

The only proper solution, obviously, is to not call external functions
from inside distribute_dofs() until all data structures have been set
up completely and are internally consistent. I work around this
by duplicating a small amount of code (specifically, the
DoFTools::get_subdomain_association() and DoFRenumbering::subdomain_wise()
functions), but this effort is made more palatable because these functions
are in fact more general than we need here, and we can throw away a good
amount of code that deals with either sequential or completely
distributed DoFHandlers; we also know that a couple of assertions
in these functions must be satisfied here, so we can eliminate them
as well.

The consequence of this code is slightly more code that is more robust
and contains fewer surprises.

7 years agoMerge pull request #4539 from drwells/add-material-id-glossary-link
Wolfgang Bangerth [Fri, 23 Jun 2017 01:41:27 +0000 (20:41 -0500)]
Merge pull request #4539 from drwells/add-material-id-glossary-link

Add a glossary link for material_id.

7 years agoAdd a glossary link for material_id. 4539/head
David Wells [Thu, 22 Jun 2017 21:20:43 +0000 (17:20 -0400)]
Add a glossary link for material_id.

7 years agoDon't just store references, but SmartPointer objects.
Wolfgang Bangerth [Thu, 22 Jun 2017 15:34:23 +0000 (09:34 -0600)]
Don't just store references, but SmartPointer objects.

This ensures that we get an error if the referenced object is deleted first.

7 years agoLet the DoFHandler policy classes store references to the DoFHandler.
Wolfgang Bangerth [Thu, 22 Jun 2017 15:17:14 +0000 (09:17 -0600)]
Let the DoFHandler policy classes store references to the DoFHandler.

This is rather than passing this reference to each and every call to the policy functions.

The primary goal of this is so that we can use the Policy base class not only for the
'normal' DoFHandler, but also for the hp::DoFHandler by removing the reference to the
actual class type from the interface of the base class.

7 years agoImplement an empty, virtual destructor via '=default'.
Wolfgang Bangerth [Thu, 22 Jun 2017 14:48:02 +0000 (08:48 -0600)]
Implement an empty, virtual destructor via '=default'.

7 years agoMerge pull request #4534 from bangerth/dofhandler-cleanup-3
Martin Kronbichler [Thu, 22 Jun 2017 12:44:55 +0000 (14:44 +0200)]
Merge pull request #4534 from bangerth/dofhandler-cleanup-3

Deprecate (hp::)DoFHandler::invalid_dof_index.

7 years agoMerge branch 'master' into dofhandler-cleanup-3 4534/head
Wolfgang Bangerth [Thu, 22 Jun 2017 02:07:02 +0000 (21:07 -0500)]
Merge branch 'master' into dofhandler-cleanup-3

7 years agoMerge pull request #4536 from bangerth/dofhandler-cleanup-7
Daniel Arndt [Wed, 21 Jun 2017 15:35:14 +0000 (17:35 +0200)]
Merge pull request #4536 from bangerth/dofhandler-cleanup-7

Use a cheaper call.

7 years agoDeprecate (hp::)DoFHandler::invalid_dof_index.
Wolfgang Bangerth [Tue, 20 Jun 2017 08:17:04 +0000 (02:17 -0600)]
Deprecate (hp::)DoFHandler::invalid_dof_index.

Also replace all uses by numbers::invalid_dof_index. I can't see a reason to
have both of these numbers, in particular because the only logical choice is
to have them have the same value.

7 years agoUse a cheaper call. 4536/head
Wolfgang Bangerth [Wed, 21 Jun 2017 14:01:23 +0000 (08:01 -0600)]
Use a cheaper call.

The functions in question take an IndexSet argument that can either mean
something, or if it is empty, is ignored. In the places where an empty
IndexSet is passed, it actually has size zero, not just zero elements,
but in the existing code, we test whether 'indices.n_elements()==0'.
It turns out that 'n_elements()' is a pretty expensive function to call.
What we really wanted, of course, was 'indices.size()==0', and this
patch makes that change.

I ran all multigrid tests (the functions in question are multigrid
related), and they all succeed.

7 years agoMerge pull request #4532 from bangerth/dofhandler-cleanup-6
David Wells [Wed, 21 Jun 2017 12:53:28 +0000 (08:53 -0400)]
Merge pull request #4532 from bangerth/dofhandler-cleanup-6

Check whether a function call makes sense at the place where the function is called

7 years agoRename a variable for greater clarity. 4532/head
Wolfgang Bangerth [Wed, 21 Jun 2017 09:38:16 +0000 (03:38 -0600)]
Rename a variable for greater clarity.

7 years agoAvoid a global communication by using a function that's already there.
Wolfgang Bangerth [Wed, 21 Jun 2017 09:35:44 +0000 (03:35 -0600)]
Avoid a global communication by using a function that's already there.

7 years agoMerge pull request #4533 from bangerth/dofhandler-cleanup-4
Martin Kronbichler [Wed, 21 Jun 2017 07:29:34 +0000 (09:29 +0200)]
Merge pull request #4533 from bangerth/dofhandler-cleanup-4

Remove hp::DoFHandler::MGVertexDoFs.

7 years agoMerge pull request #4528 from bangerth/dofhandler-cleanup-2
Martin Kronbichler [Wed, 21 Jun 2017 07:19:53 +0000 (09:19 +0200)]
Merge pull request #4528 from bangerth/dofhandler-cleanup-2

Simplify the logic of CellDataTransferBuffer::(un)pack_data().

7 years agoMerge pull request #4535 from drwells/compile-transfinite-1d
Martin Kronbichler [Wed, 21 Jun 2017 07:03:47 +0000 (09:03 +0200)]
Merge pull request #4535 from drwells/compile-transfinite-1d

Compile TransfiniteInterpolationManifold<1> in the library.

7 years agoCompile TransfiniteInterpolationManifold<1> in the library. 4535/head
David Wells [Wed, 21 Jun 2017 02:15:25 +0000 (22:15 -0400)]
Compile TransfiniteInterpolationManifold<1> in the library.

In addition, disable usage of the class by throwing an exception.

This class is not as useful in 1D as it is in higher spatial dimensions, but
compiling it in the library improves generic programming (i.e., one can write a
solver that runs in 1D and 2D and on a 2D execution path can use
TransfiniteInterpolationManifold).

7 years agoCheck whether a function call makes sense at the place where the function is called.
Wolfgang Bangerth [Tue, 20 Jun 2017 13:22:52 +0000 (07:22 -0600)]
Check whether a function call makes sense at the place where the function is called.

This is instead of returning early in the function. Check that the arguments are indeed
valid within the function.

7 years agoSimplify the logic of CellDataTransferBuffer::(un)pack_data(). 4528/head
Wolfgang Bangerth [Mon, 19 Jun 2017 11:46:40 +0000 (05:46 -0600)]
Simplify the logic of CellDataTransferBuffer::(un)pack_data().

Specifically, instead of serializing by hand with memcpy etc, use the BOOST
facilities for serialization. This works for 2 out of 3 members of this class
without problem, and the last one is easy to deal with as well.

Secondly, serialize into a gzip compressed stream to reduce the amount of data to
transfer. This reduces the size of messages significantly; for example, in the
last cycle of step-40, we get the following data -- old packet size on the left,
new (compressed) data size on the right:
    6400   1694
    8440   2200
    8440   2412
    6400   1925
    7828   2042
    6060   1589
    1504    583
    1504    520
    6060   1849
    7828   2280
    6060   1947
    7828   2375
    1504    612
      76    102
      76    104
    6400   2025
    8440   2537

I did also try to run things with BOOST's bzip2 compressor instead of gzip,
given that bzip2 often does a better job than gzip, but apparently that
isn't the case here as I get the following:
    6400   1912
    8440   2381
    8440   2712
    6400   2230
    7828   2197
    1504    681
    6060   2177
    6060   1803
    1504    556
    7828   2678
    6060   2285
    7828   2738
    1504    720
      76    122
      76    123
    6400   2392
    8440   2896

7 years agoRemove hp::DoFHandler::MGVertexDoFs. 4533/head
Wolfgang Bangerth [Tue, 20 Jun 2017 09:21:29 +0000 (03:21 -0600)]
Remove hp::DoFHandler::MGVertexDoFs.

The hp::DoFHandler class does not support multilevel DoFs, and so having a
remnant part of the infrastructure for them makes no sense. Removing this
part from the class, however, requires a couple of specializations of
functions in the DoFAccessor class that may have previously compiled,
but would likely have led to segmentation faults if anyone tried to use them.

7 years agoMerge pull request #4526 from bangerth/dofhandler-cleanup
David Wells [Tue, 20 Jun 2017 22:03:59 +0000 (18:03 -0400)]
Merge pull request #4526 from bangerth/dofhandler-cleanup

Clean up some DoFHandler things.

7 years agoMerge pull request #4531 from bangerth/fix-typos
Bruno Turcksin [Tue, 20 Jun 2017 13:40:04 +0000 (09:40 -0400)]
Merge pull request #4531 from bangerth/fix-typos

Fix a couple of typos.

7 years agoFix a couple of typos. 4531/head
Wolfgang Bangerth [Tue, 20 Jun 2017 09:19:24 +0000 (03:19 -0600)]
Fix a couple of typos.

7 years agoMerge pull request #4529 from bangerth/add-static-asserts
Daniel Arndt [Tue, 20 Jun 2017 09:18:01 +0000 (11:18 +0200)]
Merge pull request #4529 from bangerth/add-static-asserts

Add a couple of static asserts to SolutionTransfer.

7 years agoGuard static_asserts against MS VC. 4529/head
Wolfgang Bangerth [Tue, 20 Jun 2017 02:27:49 +0000 (20:27 -0600)]
Guard static_asserts against MS VC.

7 years agoMerge pull request #4530 from drwells/fix-parameterhandler-tests
Wolfgang Bangerth [Mon, 19 Jun 2017 23:36:15 +0000 (18:36 -0500)]
Merge pull request #4530 from drwells/fix-parameterhandler-tests

Fix two test outputs.

7 years agoFix two test outputs. 4530/head
David Wells [Mon, 19 Jun 2017 20:41:53 +0000 (16:41 -0400)]
Fix two test outputs.

Commit 852db02945e4eedf251d528d701b0c2b10a368c2 removed the redundant
"list" (i.e., previously we printed "List list of ...") from
List::description. This commit updates the output files in the
corresponding tests.

7 years agoUse constant strings in two places.
David Wells [Mon, 19 Jun 2017 20:41:34 +0000 (16:41 -0400)]
Use constant strings in two places.

7 years agoAdd a couple of static asserts to SolutionTransfer.
Wolfgang Bangerth [Mon, 19 Jun 2017 11:58:14 +0000 (05:58 -0600)]
Add a couple of static asserts to SolutionTransfer.

This class (in both of its incarnations) takes both a dimension and a DoFHandler
as template argument. The dimension of the DoFHandler better match the explicitly
given dimension. The added static_assert checks that and prevents instantiation
of the class if that is not the case.

7 years agoReturn an object by value, rather than filling a reference argument. 4526/head
Wolfgang Bangerth [Mon, 19 Jun 2017 06:06:00 +0000 (00:06 -0600)]
Return an object by value, rather than filling a reference argument.

In times of move assignment operators, there really is no reason any more not
to do this.

7 years agoMerge pull request #4525 from drwells/ignore-no-virtual-dtor-pragma
Wolfgang Bangerth [Mon, 19 Jun 2017 05:16:47 +0000 (23:16 -0600)]
Merge pull request #4525 from drwells/ignore-no-virtual-dtor-pragma

Add a pragma for ignoring nonvirtual destructors.

7 years agoMerge pull request #4476 from tamiko/add_clang_format_file
Wolfgang Bangerth [Mon, 19 Jun 2017 05:16:06 +0000 (23:16 -0600)]
Merge pull request #4476 from tamiko/add_clang_format_file

Add a .clang-format file

7 years agoMerge pull request #4519 from luca-heltai/key-value-separator-in-map-pattern
Wolfgang Bangerth [Mon, 19 Jun 2017 05:15:11 +0000 (23:15 -0600)]
Merge pull request #4519 from luca-heltai/key-value-separator-in-map-pattern

Key Value separator in Patterns::Map

7 years agoMerge pull request #4524 from drwells/use-d-linear-shape-function
Wolfgang Bangerth [Mon, 19 Jun 2017 03:52:53 +0000 (21:52 -0600)]
Merge pull request #4524 from drwells/use-d-linear-shape-function

Use GeometryInfo<dim>::d_linear_shape_function in two places.

7 years agoRename a member variable to better reflect its purpose.
Wolfgang Bangerth [Sun, 18 Jun 2017 02:55:49 +0000 (20:55 -0600)]
Rename a member variable to better reflect its purpose.

7 years agoBreak comments.
Wolfgang Bangerth [Sun, 18 Jun 2017 02:46:20 +0000 (20:46 -0600)]
Break comments.

7 years agoMove the CellDataTransferBuffer class out of an enclosing (useless) class.
Wolfgang Bangerth [Sun, 18 Jun 2017 02:34:16 +0000 (20:34 -0600)]
Move the CellDataTransferBuffer class out of an enclosing (useless) class.

7 years agoRename the cellinfo structure to CellDataTransferBuffer.
Wolfgang Bangerth [Sun, 18 Jun 2017 02:30:55 +0000 (20:30 -0600)]
Rename the cellinfo structure to CellDataTransferBuffer.

Because that is what the class really represents. Also update the documentation.

7 years agoRemove a commented out piece of code.
Wolfgang Bangerth [Sun, 18 Jun 2017 01:43:50 +0000 (19:43 -0600)]
Remove a commented out piece of code.

The code suggests that one could update the cell DoF cache, but the cache only
exists for non-MG DoF indices, whereas the function where the comment resides
deals with MG level DoFs.

7 years agoNon-functional source cleanups at the textual level.
Wolfgang Bangerth [Sun, 18 Jun 2017 01:38:50 +0000 (19:38 -0600)]
Non-functional source cleanups at the textual level.

7 years agoRemove a wrong comment. Add some code documentation.
Wolfgang Bangerth [Sun, 18 Jun 2017 01:37:59 +0000 (19:37 -0600)]
Remove a wrong comment. Add some code documentation.

7 years agoMake control flow more obvious.
Wolfgang Bangerth [Sun, 18 Jun 2017 01:18:55 +0000 (19:18 -0600)]
Make control flow more obvious.

7 years agoReplace an explicit by an implicit loop.
Wolfgang Bangerth [Sun, 18 Jun 2017 01:17:16 +0000 (19:17 -0600)]
Replace an explicit by an implicit loop.

7 years agoNon-functional source cleanups at the textual level.
Wolfgang Bangerth [Sun, 18 Jun 2017 01:15:09 +0000 (19:15 -0600)]
Non-functional source cleanups at the textual level.

7 years agoDo not check that 'new' returned a non-NULL pointer.
Wolfgang Bangerth [Sun, 18 Jun 2017 01:08:56 +0000 (19:08 -0600)]
Do not check that 'new' returned a non-NULL pointer.

'new' hasn't done that since C++98 but instead throws a std::bad_alloc itself. Consequently,
the assertion would never have failed.

7 years agoAdd documentation.
Wolfgang Bangerth [Sun, 18 Jun 2017 01:05:27 +0000 (19:05 -0600)]
Add documentation.

7 years agoExplicitly delete copy constructor and operator.
Wolfgang Bangerth [Sun, 18 Jun 2017 00:58:24 +0000 (18:58 -0600)]
Explicitly delete copy constructor and operator.

7 years agoUse std::unique_ptr instead of std::shared_ptr for DoFHandler::policy.
Wolfgang Bangerth [Sun, 18 Jun 2017 00:55:13 +0000 (18:55 -0600)]
Use std::unique_ptr instead of std::shared_ptr for DoFHandler::policy.

This is possible because DoFHandler has no copy constructor or operator, and consequently
there is no reason to share a policy.

7 years agoAdjust serialization output for use of std::unique_ptr.
Wolfgang Bangerth [Mon, 19 Jun 2017 01:46:59 +0000 (19:46 -0600)]
Adjust serialization output for use of std::unique_ptr.

7 years agoUse std::unique_ptrs instead of raw pointers for level/face objects in class DoFHandler.
Wolfgang Bangerth [Sun, 18 Jun 2017 00:52:15 +0000 (18:52 -0600)]
Use std::unique_ptrs instead of raw pointers for level/face objects in class DoFHandler.

7 years agoAdd a pragma for ignoring nonvirtual destructors. 4525/head
David Wells [Mon, 19 Jun 2017 01:10:27 +0000 (21:10 -0400)]
Add a pragma for ignoring nonvirtual destructors.

An OpenCascade header triggers this warning, so lets ignore it in external
libraries.

7 years agoUse GeometryInfo<dim>::d_linear_shape_function in two places. 4524/head
David Wells [Mon, 19 Jun 2017 00:23:23 +0000 (20:23 -0400)]
Use GeometryInfo<dim>::d_linear_shape_function in two places.

7 years agoMerge pull request #4523 from masterleinad/fix_uninitialized_var_dof_info
Timo Heister [Sun, 18 Jun 2017 18:18:21 +0000 (20:18 +0200)]
Merge pull request #4523 from masterleinad/fix_uninitialized_var_dof_info

Fix uninitialized member variables in DoFInfo

7 years agoFix uninitialized member variables in DoFInfo 4523/head
Daniel Arndt [Sun, 18 Jun 2017 15:16:42 +0000 (17:16 +0200)]
Fix uninitialized member variables in DoFInfo

7 years agoMerge pull request #4522 from asartori86/fix_assert
Denis Davydov [Sun, 18 Jun 2017 05:45:37 +0000 (07:45 +0200)]
Merge pull request #4522 from asartori86/fix_assert

Added missing template

7 years agoRemove an empty 'private:' section.
Wolfgang Bangerth [Sun, 18 Jun 2017 00:39:47 +0000 (18:39 -0600)]
Remove an empty 'private:' section.

7 years agoadded missing spacedim template 4522/head
alberto sartori [Sat, 17 Jun 2017 21:27:14 +0000 (23:27 +0200)]
added missing spacedim template

7 years agoMerge pull request #4505 from bangerth/strict-enums
Daniel Arndt [Fri, 16 Jun 2017 22:51:40 +0000 (00:51 +0200)]
Merge pull request #4505 from bangerth/strict-enums

Use only enum values, don't look at bits.

7 years agoMerge pull request #4521 from drwells/fix-trilinos-quick-test
Wolfgang Bangerth [Fri, 16 Jun 2017 15:37:02 +0000 (09:37 -0600)]
Merge pull request #4521 from drwells/fix-trilinos-quick-test

Fix the Trilinos quick test.

7 years agoFix the Trilinos quick test. 4521/head
David Wells [Fri, 16 Jun 2017 14:17:13 +0000 (10:17 -0400)]
Fix the Trilinos quick test.

It looks like we did not update this constructor when we removed the serial
vector (the parallel vector's constructor needs an IndexSet, not an integer).

7 years agoMerge pull request #4520 from drwells/vertex-inlining
Martin Kronbichler [Thu, 15 Jun 2017 14:26:40 +0000 (16:26 +0200)]
Merge pull request #4520 from drwells/vertex-inlining

Mark the vertex lookup functions as inline.

7 years agoFixed typos. 4519/head
Luca Heltai [Thu, 15 Jun 2017 07:40:44 +0000 (09:40 +0200)]
Fixed typos.

7 years agoMark the vertex lookup functions as inline. 4520/head
David Wells [Mon, 12 Jun 2017 15:13:23 +0000 (11:13 -0400)]
Mark the vertex lookup functions as inline.

This lowers the number of calls to vertex() by a lot (down from 229 million to
46 million in a benchmark) and also provides about a 5% speed improvement.

For the sake of posterity, here is the benchmark used here and also in
b584c58d95 and cbb473c59d:

#include <deal.II/base/geometry_info.h>

#include <deal.II/grid/grid_in.h>
#include <deal.II/grid/manifold_lib.h>
#include <deal.II/grid/tria.h>

#include <chrono>
#include <fstream>
#include <iostream>

using namespace dealii;

int main()
{
  constexpr int dim = 2;
  PolarManifold<dim> polar_manifold;
  TransfiniteInterpolationManifold<dim> inner_manifold;
  constexpr types::manifold_id polar_manifold_id = 1;
  constexpr types::manifold_id inner_manifold_id = 2;

  Triangulation<dim> triangulation;
  GridIn<dim> grid_in;
  std::ifstream input_grid("triangulation.msh");
  grid_in.attach_triangulation(triangulation);
  grid_in.read_msh(input_grid);
  triangulation.set_all_manifold_ids(inner_manifold_id);
  for (auto cell : triangulation.active_cell_iterators())
    {
      if (cell->at_boundary())
        {
          cell->set_all_manifold_ids(polar_manifold_id);
        }
    }
  triangulation.set_manifold(polar_manifold_id, polar_manifold);
  inner_manifold.initialize(triangulation);
  triangulation.set_manifold(inner_manifold_id, inner_manifold);

#ifdef DEBUG
  constexpr unsigned int n_refinements = 6;
#else
  constexpr unsigned int n_refinements = 8;
#endif

  for (unsigned int refinement_n = 0; refinement_n < n_refinements; ++refinement_n)
    {
      const auto t0 = std::chrono::high_resolution_clock::now();
      triangulation.refine_global(1);
      const auto t1 = std::chrono::high_resolution_clock::now();
      std::cout << "Number of active cells: "
                << triangulation.n_active_cells()
                << '\n';
      std::cout << "Refinement time: "
                << std::chrono::duration_cast<std::chrono::milliseconds>(t1 - t0).count()
                << '\n';
    }
}

and here is triangulation.msh:

$NOD
25
1  1 0 0
2  0.70710678118654757274 0.70710678118654746172 0
3  6.1232339957367660359e-17 1 0
4  -0.70710678118654746172 0.70710678118654757274 0
5  -1 1.2246467991473532072e-16 0
6  -0.70710678118654768376 -0.70710678118654746172 0
7  -1.8369701987210296875e-16 -1 0
8  0.70710678118654735069 -0.70710678118654768376 0
9  0.5 0 0
10  0.35355339059327378637 0.35355339059327373086 0
11  3.0616169978683830179e-17 0.5 0
12  -0.35355339059327373086 0.35355339059327378637 0
13  -0.5 6.1232339957367660359e-17 0
14  -0.35355339059327384188 -0.35355339059327373086 0
15  -9.1848509936051484375e-17 -0.5 0
16  0.35355339059327367535 -0.35355339059327384188 0
17  -0.22097086912079610954 -0.22097086912079610954 0
18  0.22097086912079610954 -0.22097086912079610954 0
19  -0.22097086912079610954 0.22097086912079610954 0
20  0.22097086912079610954 0.22097086912079610954 0
21  0 -0.22097086912079610954 0
22  -0.22097086912079610954 0 0
23  0.22097086912079610954 0 0
24  0 0.22097086912079610954 0
25  0 0 0
$ENDNOD
$ELM
20
1 3 0 0 4 10 9 1 2
2 3 0 0 4 11 10 2 3
3 3 0 0 4 12 11 3 4
4 3 0 0 4 12 4 5 13
5 3 0 0 4 14 13 5 6
6 3 0 0 4 14 6 7 15
7 3 0 0 4 15 7 8 16
8 3 0 0 4 16 8 1 9
9 3 0 0 4 17 14 15 21
10 3 0 0 4 21 15 16 18
11 3 0 0 4 17 22 13 14
12 3 0 0 4 19 12 13 22
13 3 0 0 4 17 21 25 22
14 3 0 0 4 21 18 23 25
15 3 0 0 4 19 22 25 24
16 3 0 0 4 24 25 23 20
17 3 0 0 4 18 16 9 23
18 3 0 0 4 20 23 9 10
19 3 0 0 4 19 24 11 12
20 3 0 0 4 24 20 10 11
$ENDELM

7 years agoMerge pull request #4515 from jppelteret/fix_tw_solverbase_ad_4443
Bruno Turcksin [Wed, 14 Jun 2017 20:24:52 +0000 (16:24 -0400)]
Merge pull request #4515 from jppelteret/fix_tw_solverbase_ad_4443

Propogate settings set in TrilinosWrappers::Solver<XYZ> to base class.

7 years agoMerge pull request #4516 from drwells/improve-vertex-caching
Martin Kronbichler [Wed, 14 Jun 2017 18:32:11 +0000 (20:32 +0200)]
Merge pull request #4516 from drwells/improve-vertex-caching

Improve vertex caching in a few places.

7 years agoMerge pull request #4517 from masterleinad/fixup_petsc_tests
Jean-Paul Pelteret [Wed, 14 Jun 2017 16:12:16 +0000 (18:12 +0200)]
Merge pull request #4517 from masterleinad/fixup_petsc_tests

Fix up PETSc tests

7 years agoImproved code in Patterns::List
Luca Heltai [Wed, 14 Jun 2017 16:07:03 +0000 (18:07 +0200)]
Improved code in Patterns::List

7 years agoAdded new parameter to Patterns::Map
Luca Heltai [Wed, 14 Jun 2017 15:54:36 +0000 (17:54 +0200)]
Added new parameter to Patterns::Map

7 years agoMerge pull request #4518 from luca-heltai/string-delimiter-in-split-string
Luca Heltai [Wed, 14 Jun 2017 16:09:37 +0000 (18:09 +0200)]
Merge pull request #4518 from luca-heltai/string-delimiter-in-split-string

Added split_string_list with string as separator.

7 years agoImprove vertex caching in a few places. 4516/head
David Wells [Mon, 12 Jun 2017 15:13:04 +0000 (11:13 -0400)]
Improve vertex caching in a few places.

Calling cell->vertex() requires several index lookups before indexing into the
global vertex array so this is relatively expensive. This patch lowers, in a
TransfiniteInterpolationManifold benchmark, the number of vertex lookups from
about 361 million to 229 million and lowers the total wall time by about 5%.

7 years agoAdded changelog. 4518/head
Luca Heltai [Wed, 14 Jun 2017 14:06:17 +0000 (16:06 +0200)]
Added changelog.

7 years agoUtilities::split_string_list take a string instead of char
Luca Heltai [Wed, 14 Jun 2017 13:50:05 +0000 (15:50 +0200)]
Utilities::split_string_list take a string instead of char


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.