As discussed in #496, normal vectors are currently returned by FEValues
as Point<spacedim> objects, but since they are differential vectors, the
correct data type should be Tensor<1,dim>. This patch implements the solution
discussed in #496 by
* changing the return type of FEValues::normal_vector()
* deprecating FEValues::get_normal_vectors()
* introducing FEValues::get_all_normal_vectors() that returns a vector
of tensors.
The old get_normal_vectors() function was deprecated. In order to
make it work, I also had to change the return type from a reference
to a straight array. This array may be bound to a reference in
many places in user codes, but the style we have used everywhere
is to make these reference variables very localized in scope and
so I don't foresee any problems.
David Wells [Thu, 13 Aug 2015 03:05:30 +0000 (23:05 -0400)]
Remove apple gcc-3.3 compatability.
The last release of the 3.3 branch was in 2005, and this bug was fixed
in gcc4.0 (released in 2007).
A historical note: the mentioned bug was reported by deal.II developers
in 2005. See
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24331
for further discussion (from Kayser-Herold and Bangerth).
In particular, document the restriction_is_additive flags for which
there was basically nothing there so far. Also provide better documentation
about the constructor arguments.
We only need the #include if we actually use the functions the file
provides. Disable it otherwise to ensure that the tests continue to
run on platforms that don't provide <cfenv>.
The mesh_converter program is now considered obsolete and has been
removed from the contrib folder.
Direct support for Abaqus mesh files has been added to the GridIn
class through the function GridIn::read_abaqus(). An internal class
Abaqus_to_UCD captures all of the functionality of the original
mesh_converter program and feeds its output directly to the
already implemented GridIn::read_ucd() function. This is suboptimal
but works sufficiently well to act as an interim solution until the
internal renumbering scheme necessary to convert the Abaqus format
directly to deal.II's internal number can be determined.
On top of the already existing functionality to read in Abaqus meshes
created using Cubit, patches provided by Krzysztof Bzowski that allow
for the input of mesh files exported directly from Abaqus have also
been included.
Test cases have been added to the testsuite, with the original
mesh files from the mesh_converter program used for this purpose.
Disable floating point exceptions for tests that specifically test is_nan.
This is necessary because, very helpfully, the isnan() function throws a
floating point exception when encountering NaN if floating
point exceptions are enabled.
Rather than just referring to the type as 'InternalDataBase', use
'typename Mapping<dim,spacedim>::InternalDataBase'. The purpose is
so that we use the same signature in the base and derived classes,
since otherwise doxygen gets confused, doesn't recognize the functions
in the derived classes as implementing the interface of the base
class, and doesn't copy the documentation :-(
David Wells [Tue, 18 Aug 2015 11:55:36 +0000 (07:55 -0400)]
Fix references to classes that are now namespaces.
GridTools, DoFTools, MGTools, VectorTools, MatrixCreator, and
MatrixTools were converted to namespaces in 2011 (see the list of
changes between 7.0.0 and 7.1.0 file for a discussion).
This patch simply moves the InternalDataBase, get_*_data() and fill_fe_*_values()
members of the derived mapping classes into a doxygen group. No changes in
functionality. No changes in text either.
Also remove the documentation from these functions in derived classes
as doxygen properly copies the documentation from the corresponding
functions in the base class. This makes sure we only have to document
in one place and avoids things getting out of synch.
They do not compile because the shared triangulation without MPI
can't be constructed with the same constructor taking an MPI_Comm
as is used in these tests.
The current path leads to a failure on my system when calling
'ninja setup_tests':
FAILED: cd /node/bangerth/trunk/build/tests/sharedtria && /w/bangerth/share/software/cmake-2.8.12.2/bin/cmake -GNinja -DDEAL_II_DIR=/node/bangerth/trunk/build -UDIFF_DIR -UNUMDIFF_DIR -UTEST_PICKUP_REGEX -UTEST_TIME_LIMIT /node/bangerth/trunk/dealii/tests/sharedtria > /dev/null
CMake Error at CMakeLists.txt:2 (INCLUDE):
include could not find load file:
../tests/setup_testsubproject.cmake
CMake Error at CMakeLists.txt:4 (INCLUDE):
include called with wrong number of arguments. Include only takes one
file.
Fix this by providing the same path as in the tests/distributed
directory.
These two functions computed something that, in essence, is only important
for the internal implementation of the mapping classes. It should thus
not be part of the public interface of these classes. Consequently,
remove them and replace them by the only thing that is of interest,
namely to compute transitive closure of the set of flags one needs to
compute -- as now done using the requires_update_flags() function.