David Wells [Sun, 28 Feb 2016 21:08:06 +0000 (16:08 -0500)]
Avoid boost functions that don't work on BSDs.
As was noted in issue #2261, the function boost::math::iround cannot be
used on some BSD variants due to the following compilation error:
In file included from /root/workspace/dealii/source/lac/lapack_full_matrix.cc:25:
In file included from /usr/local/include/boost/math/special_functions/round.hpp:15:
In file included from /usr/local/include/boost/math/special_functions/fpclassify.hpp:19:
In file included from /usr/local/include/boost/math/special_functions/math_fwd.hpp:26:
In file included from /usr/local/include/boost/math/special_functions/detail/round_fwd.hpp:12:
/usr/local/include/boost/math/tools/promotion.hpp:141:10: error: static_assert failed
"Sorry, but this platform does not have sufficient long double support for the special functions to be reliably implemented."
BOOST_STATIC_ASSERT_MSG((0 == ::boost::is_same<type, long
double>::value),
"Sorry, but this platform does not have sufficient long double support for the special functions to be reliably implement ed.");
/usr/local/include/boost/static_assert.hpp:31:45: note: expanded from macro 'BOOST_STATIC_ASSERT_MSG'
Since we only use iround for clarity this is not hard to work around.
A note on the implementation: LAPACK functions can usually be run in two
different modes. In the first, they compute the optimal size of the work
array. In the second they actually execute the function. Therefore
all we need to do is make the work arrays one longer and we should still
get the same performance out of LAPACK without needing to worry about
any unforeseen roundoff issues.
David Wells [Sat, 20 Feb 2016 23:41:57 +0000 (18:41 -0500)]
Get rid of IterativeInverse in step-20.
IterativeInverse was marked as deprecated in April 2015 in favor of
LinearOperator. This puts this step in a strange place; we should not
use deprecated features in tutorials, but at the same time we cannot use
its replacement, which requires C++11 support. To resolve this, this
step just provides its own replacement for a special case of
IterativeInverse.
By making the appropriate changes to the material class, grid generation
and boundary conditions, the quasi-incompressible indentation problem
can be made dimension independent. The traction is now applied on the +Y
face instead of the +Z face so that the 2-d and 3-d problems can be
post-processed in a similar manner. The 2-d results are qualitatively
similar to that of the 3-d case, but due to the more constrained nature
of the problem (planar motion) the amount of compression achieved is
less than that of the 3-d case (while the laterial extension increases).
David Wells [Sun, 14 Feb 2016 14:40:15 +0000 (09:40 -0500)]
Update the results for step-18.
This commit updates the discussion (we no longer have to rewrite
makefiles), the timing values (happily, the program runs about 20x
faster now than when these results were recorded at some point in the
past, which most likely in 2002-2005 based on the mention of the
Athlon XP processor), and the output files from the simulation.
Timo Heister [Sun, 14 Feb 2016 16:02:06 +0000 (11:02 -0500)]
fix eager Assertion in DoFAccessor
TriaRawIterator constructs a DoFAccessor with NULL as the Triangulation, see
include/deal.II/grid/tria_iterator.templates.h:71
so the new Assert introduced in #2179 triggers.
Timo Heister [Sun, 14 Feb 2016 15:15:33 +0000 (10:15 -0500)]
fix cmake 3.3 warning about code-gallery.h
cmake 3.3 will warn about CMP0058 and is unable to compile the documentation
when using Ninja:
This project specifies custom command DEPENDS on files in the build tree
that are not specified as the OUTPUT or BYPRODUCTS of any
add_custom_command or add_custom_target:
doc/doxygen/code-gallery/code-gallery.h
We have to jump through a few hoops to make this work: Generating a
dependency to a source file generated in a subdirectory CMakeLists.txt
requires a custom command attached to a custom_target. Because ADD_DEPENDENCIES
only allows custom_targets not custom_commands, we have to add another dummy.
Timo Heister [Sun, 14 Feb 2016 13:47:14 +0000 (08:47 -0500)]
suppress more warnings in external libs
this suppresses:
/ssd/libs-candi/trilinos-12.4.2-Source/include/Amesos2_Superludist_FunctionMap.hpp:285:17: warning: comparison of constant 67 with expression of type 'SLUD::DiagScale_t' is always false [-Wtautological-constant-out-of-range-compare]
char eq = AMESOS2_SLUD_GET_EQUED(*equed);
and
/ssd/libs-candi/trilinos-12.4.2-Source/include/Tpetra_Experimental_BlockCrsMatrix_def.hpp:2826:3: warning: all paths through this function will call itself [-Winfinite-recursion]
Spencer Patty [Thu, 11 Feb 2016 21:51:08 +0000 (15:51 -0600)]
add a test associated with the perturbed vertices changes that calls GridTools::distort_random on the triangulation and then runs the same test as in tests/grid/build_triangulation_from_patch_01.cc
danshapero [Thu, 11 Feb 2016 22:10:22 +0000 (14:10 -0800)]
Factored out repeated code in interpolated grid data
InterpolatedTensorProductGridData has some repeated code for finding
the right table index for an input point when computed the value or
gradient; this has been factored out into a protected member function
and the member data have been made protected instead of private for
ease of extension.