Commit 93491c28 authored by Robert K's avatar Robert K

Revision of library to speedup compile times. This includes an

the extraction of various methods in several classes into .cc files and
a re-work of the Level and Leaf iterators.
parent db85335a
Pipeline #17189 passed with stage
in 42 minutes and 31 seconds
......@@ -9,6 +9,15 @@ set(DUNE_REENABLE_ADD_TEST TRUE)
set(ALUGRID_EXTRA_GRIDSELECTOR_FILE TRUE)
set(ALUGRID_DISABLE_METIS TRUE)
#set(DUNE_ALUGRID_COMPILE_BINDINGS TRUE)
set(DUNE_ALUGRID_COMPILE_BINDINGS FALSE)
# variable to be set in config.h
if( DUNE_ALUGRID_COMPILE_BINDINGS )
set(DUNE_ALUGRID_COMPILE_BINDINGS_IN_LIB 1)
endif()
# general stuff
cmake_minimum_required(VERSION 2.8.12)
......
......@@ -39,6 +39,8 @@
/* Define to the revision of dune-alugrid*/
#define DUNE_ALUGRID_VERSION_REVISION ${DUNE_ALUGRID_VERSION_REVISION}
/* Define to build more .cc into library */
#cmakedefine DUNE_ALUGRID_COMPILE_BINDINGS_IN_LIB 1
/* Define if we have dlmalloc */
#cmakedefine HAVE_DLMALLOC 1
......
set(alu3dgriddir ${CMAKE_INSTALL_INCLUDEDIR}/dune/alugrid/3d)
set(alu3dgrid_HEADERS alu3dinclude.hh communication.hh
set(alu3dgrid_HEADERS aluinline.hh alu3dinclude.hh communication.hh
datacollectorcaps.hh datahandle.hh grid.hh grid_imp.cc grid_inline.hh
mappings.hh mappings_imp.cc topology.hh topology.cc
entity.hh entity_imp.cc entity_inline.hh entityseed.hh
faceutility.hh faceutility_imp.cc geometry.hh geometry_imp.cc
gridfactory.hh gridfactory.cc gridview.hh
indexsets.hh iterator.hh iterator.cc iterator_imp.cc alu3diterators.hh
indexsets.hh indexsets.cc iterator.hh iterator.cc iterator_imp.cc alu3diterators.hh
alugrid.hh)
set(headercheck_IGNORE ${alu3dgrid_HEADERS})
# include not needed for CMake
......
#ifndef DUNE_ALUGRID_ALU3DINCLUDE_HH
#define DUNE_ALUGRID_ALU3DINCLUDE_HH
//////////////////////////////////////////////////////////////////////
// compile imp.cc into lib (1 yes, 0 no)
// if you change this, you'll get what you deserve
//////////////////////////////////////////////////////////////////////
#define COMPILE_ALUGRID_LIB 0
#if COMPILE_ALUGRID_LIB
#define COMPILE_ALUGRID_INLINE 0
#else
#define COMPILE_ALUGRID_INLINE 1
#endif
#if COMPILE_ALUGRID_INLINE
#define alu_inline inline
#else
#define alu_inline
#endif
/////////////////////////////////////////////////////////////////////
#include "aluinline.hh"
// all methods and classes of the ALUGrid are defined in the namespace
#define ALU3DSPACE ::ALUGrid::
......
This diff is collapsed.
This diff is collapsed.
......@@ -202,5 +202,5 @@ namespace Dune
} //end namespace Dune
#undef alu_inline
//#undef alu_inline
#endif // #ifndef DUNE_ALU3DGRID_ALUGRID_HH
#ifndef DUNE_ALUGRID_INLINE_HH
#define DUNE_ALUGRID_INLINE_HH
//////////////////////////////////////////////////////////////////////
// compile imp.cc into lib (1 yes, 0 no)
// if you change this, you'll get what you deserve
//////////////////////////////////////////////////////////////////////
#if DUNE_ALUGRID_COMPILE_BINDINGS_IN_LIB
#define COMPILE_ALUGRID_LIB 1
#else
#define COMPILE_ALUGRID_LIB 0
#endif
#if COMPILE_ALUGRID_LIB
#define COMPILE_ALUGRID_INLINE 0
#else
#define COMPILE_ALUGRID_INLINE 1
#endif
#if COMPILE_ALUGRID_INLINE
#define alu_inline inline
#else
#define alu_inline
#endif
/////////////////////////////////////////////////////////////////////
#endif //DUNE_ALUGRID_INLINE_HH
......@@ -11,6 +11,7 @@
// Local includes
#include "alu3dinclude.hh"
#include "indexsets.hh"
#include "iterator.hh"
#include "entityseed.hh"
......@@ -691,5 +692,4 @@ protected:
#if COMPILE_ALUGRID_INLINE
#include "entity_imp.cc"
#endif
#endif
This diff is collapsed.
......@@ -5,6 +5,7 @@
#include "geometry.hh"
#include "grid.hh"
namespace Dune {
/////////////////////////////////////////////////////////////////
......@@ -13,6 +14,7 @@ namespace Dune {
// --Codim0Entity
//
////////////////////////////////////////////////////////////////
/*
template<int dim, class GridImp>
inline void ALU3dGridEntity<0,dim,GridImp> ::
removeElement ()
......@@ -201,6 +203,7 @@ namespace Dune {
alugrid_assert ( item_ );
return ((*item_).requestrule() == coarse_element_t);
}
*/
//*******************************************************************
//
......
......@@ -280,7 +280,8 @@ namespace Dune
bndType_( orig.bndType_ ),
conformanceState_(orig.conformanceState_),
conformingRefinement_( orig.conformingRefinement_ ),
ghostCellsEnabled_( orig.ghostCellsEnabled_ )
ghostCellsEnabled_( orig.ghostCellsEnabled_ ),
levelIntersection_( orig.levelIntersection_ )
{}
template< int dim, int dimworld, ALU3dGridElementType type, class Comm >
......
......@@ -706,7 +706,7 @@ namespace Dune
const JacobianTransposed& jacobianTransposed (const LocalCoordinate& local) const;
//! returns true if mapping is affine
inline bool affine () const;
bool affine () const;
//! returns volume of geometry
ctype volume () const;
......@@ -742,8 +742,8 @@ namespace Dune
const coord_t& p1);
//! build geometry of local coordinates relative to father
template <class GeometryType>
bool buildGeomInFather(const GeometryType &fatherGeom , const GeometryType & myGeom);
template <class Geometry>
bool buildGeomInFather(const Geometry &fatherGeom , const Geometry &myGeom);
//! print internal data
//! no interface method
......
This diff is collapsed.
......@@ -403,10 +403,10 @@ namespace Dune
typedef typename Partition< All_Partition > :: LevelGridView LevelGridView;
//! Type of the level index set
typedef DefaultIndexSet< GridImp, typename Codim< 0 > :: LevelIterator > LevelIndexSetImp;
typedef DefaultIndexSet< Grid, typename Codim< 0 > :: LevelIterator > LevelIndexSetImp;
//! Type of the leaf index set
typedef DefaultIndexSet< GridImp, typename Codim< 0 > :: LeafIterator > LeafIndexSetImp;
typedef DefaultIndexSet< Grid, typename Codim< 0 > :: LeafIterator > LeafIndexSetImp;
typedef IndexSet< Grid, LevelIndexSetImp > LevelIndexSet;
typedef IndexSet< Grid, LeafIndexSetImp > LeafIndexSet;
......@@ -852,38 +852,16 @@ namespace Dune
const typename Traits :: LeafIndexSet & leafIndexSet () const;
//! get level index set of the grid
const typename Traits :: LevelIndexSet & levelIndexSet (int level) const
{
assert( (level >= 0) && (level < int( levelIndexVec_.size() )) );
if( ! levelIndexVec_[ level ] )
{
levelIndexVec_[ level ] = createLevelIndexSet( level );
}
return (*levelIndexVec_[ level ]);
}
const typename Traits :: LevelIndexSet & levelIndexSet (int level) const;
/** \brief return instance of level index set
\note if index set for this level has not been created then this
instance will be deleted once the shared_ptr goes out of scope.
*/
std::shared_ptr< LevelIndexSetImp > accessLevelIndexSet ( int level ) const
{
assert( (level >= 0) && (level < int( levelIndexVec_.size() )) );
if( levelIndexVec_[ level ] )
{
return levelIndexVec_[ level ];
}
else
{
return createLevelIndexSet( level );
}
}
std::shared_ptr< LevelIndexSetImp > accessLevelIndexSet ( int level ) const;
protected:
std::shared_ptr< LevelIndexSetImp > createLevelIndexSet ( int level ) const
{
return std::shared_ptr< LevelIndexSetImp > (new LevelIndexSetImp( *this, lbegin< 0 >( level ), lend< 0 >( level ), level ) );
}
std::shared_ptr< LevelIndexSetImp > createLevelIndexSet ( int level ) const;
public:
template< int cd >
......@@ -1437,7 +1415,7 @@ namespace Dune
} // end namespace Dune
#include "grid_inline.hh"
#if COMPILE_ALUGRID_INLINE
//#if COMPILE_ALUGRID_INLINE
#include "grid_imp.cc"
#endif
//#endif
#endif
This diff is collapsed.
......@@ -60,31 +60,6 @@ namespace Dune
} // end constructor
template< int dim, int dimworld, ALU3dGridElementType elType, class Comm >
void
ALU3dGrid< dim, dimworld, elType, Comm >::makeGeometries()
{
// instantiate the static memory pool by creating an object
ALU3dGridGeometry< 0, dimworld, const ThisType >();
ALU3dGridGeometry< 1, dimworld, const ThisType >();
ALU3dGridGeometry< 2, dimworld, const ThisType >();
ALU3dGridGeometry< dim, dimworld, const ThisType >();
alugrid_assert ( elType == tetra || elType == hexa );
geomTypes_.clear();
geomTypes_.resize( dimension+1 );
geomTypes_[ 0 ].push_back( ALU3dGridGeometry< dim, dimworld, const ThisType >().type() );
geomTypes_[ 1 ].push_back( ALU3dGridGeometry< dim-1, dimworld, const ThisType >().type() );
geomTypes_[ 2 ].push_back( ALU3dGridGeometry< dim-2, dimworld, const ThisType >().type() );
if( dimension == 3 )
{
geomTypes_[ 3 ].push_back( ALU3dGridGeometry< 0, dimworld, const ThisType >().type() );
}
}
template< int dim, int dimworld, ALU3dGridElementType elType, class Comm >
inline int ALU3dGrid< dim, dimworld, elType, Comm >::global_size ( int codim ) const
{
......@@ -389,58 +364,6 @@ namespace Dune
}
// load balance grid ( lbData might be a pointer to NULL )
template< int dim, int dimworld, ALU3dGridElementType elType, class Comm >
inline bool ALU3dGrid< dim, dimworld, elType, Comm >::loadBalance( GatherScatterType* lbData )
{
if( comm().size() <= 1 )
return false;
// call load Balance
const bool changed = myGrid().loadBalance( lbData );
if( changed )
{
// reset boundary segment index
macroBoundarySegmentIndexSet_.invalidate();
// reset size and things
// maxLevel does not need to be recalculated
calcExtras();
// build new Id Set. Only do that after calcExtras, because here
// the item lists are needed
if( globalIdSet_ )
globalIdSet_->updateIdSet();
// compress data if lbData is valid and has user data
if( lbData && lbData->hasUserData() )
lbData->compress() ;
else // this only needs to be done if no user is present
clearIsNewMarkers();
}
return changed;
}
template< int dim, int dimworld, ALU3dGridElementType elType, class Comm >
inline void ALU3dGrid< dim, dimworld, elType, Comm >::finalizeGridCreation()
{
// distribute the grid
loadBalance();
// free memory by reinitializing the grid
mygrid_.reset( GitterImplType :: compress( mygrid_.release() ) );
// update all internal structures
updateStatus();
// call post adapt
clearIsNewMarkers();
}
// return Grid name
template< int dim, int dimworld, ALU3dGridElementType elType, class Comm >
inline std::string ALU3dGrid< dim, dimworld, elType, Comm >::name ()
......
#ifndef DUNE_ALU3DGRID_FACTORY_CC
#define DUNE_ALU3DGRID_FACTORY_CC
#if COMPILE_ALUGRID_INLINE == 0
#include <config.h>
#endif
#include <cstdlib>
#include <cstdio>
#include <cstring>
......@@ -22,11 +18,7 @@
#include <utils/bisection-compatibility/bisectioncompatibility.hh>
#if COMPILE_ALUGRID_INLINE
#define alu_inline inline
#else
#define alu_inline
#endif
#include "dune/alugrid/3d/aluinline.hh"
namespace Dune
{
......@@ -1347,20 +1339,34 @@ namespace Dune
}
#if COMPILE_ALUGRID_LIB
#if ! COMPILE_ALUGRID_INLINE
// Instantiation -3-3
template class ALUGrid< 3, 3, cube, nonconforming >;
template class ALUGrid< 3, 3, simplex, nonconforming >;
template class ALUGrid< 3, 3, simplex, conforming >;
template class ALU3dGridFactory< ALUGrid< 3, 3, cube, nonconforming > >;
template class ALU3dGridFactory< ALUGrid< 3, 3, simplex, nonconforming > >;
template class ALU3dGridFactory< ALUGrid< 3, 3, simplex, conforming > >;
// Instantiation -2-3
template class ALUGrid< 2, 3, cube, nonconforming >;
template class ALUGrid< 2, 3, simplex, nonconforming >;
template class ALUGrid< 2, 3, simplex, conforming >;
template class ALU3dGridFactory< ALUGrid< 2, 3, cube, nonconforming > >;
template class ALU3dGridFactory< ALUGrid< 2, 3, simplex, nonconforming > >;
template class ALU3dGridFactory< ALUGrid< 2, 3, simplex, conforming > >;
// Instantiation -2-2
template class ALUGrid< 2, 2, cube, nonconforming >;
template class ALUGrid< 2, 2, simplex, nonconforming >;
template class ALUGrid< 2, 2, simplex, conforming >;
template class ALU3dGridFactory< ALUGrid< 2, 2, cube, nonconforming > >;
template class ALU3dGridFactory< ALUGrid< 2, 2, simplex, nonconforming > >;
template class ALU3dGridFactory< ALUGrid< 2, 2, simplex, conforming > >;
#endif
#endif // ! COMPILE_ALUGRID_INLINE
}
#undef alu_inline
#endif // end DUNE_ALU3DGRID_FACTORY_CC
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -231,8 +231,7 @@ protected:
const BNDFaceType& bnd, int wLevel);
// reset IntersectionIterator to first neighbour
template <class EntityType>
void first(const EntityType & en, int wLevel, const GridImp& grid );
void first(const EntityImp& en, int wLevel, const GridImp& grid );
// set new face
void setNewFace(const GEOFaceType& newFace);
......@@ -327,6 +326,8 @@ public ALU3dGridIntersectionIterator<GridImp>
typedef ALU3dGridIntersectionIterator<GridImp> BaseType;
typedef ALU3dGridLevelIntersectionIterator<GridImp> ThisType;
typedef typename BaseType :: EntityImp EntityImp;
friend class ALU3dGridEntity<0,dim,GridImp>;
friend class IntersectionIteratorWrapper<GridImp,ThisType>;
protected:
......@@ -356,8 +357,7 @@ public:
void increment ();
// reset IntersectionIterator to first neighbour
template <class EntityType>
void first(const EntityType & en, int wLevel, const GridImp& grid );
void first(const EntityImp& en, int wLevel, const GridImp& grid );
//! return true if across the edge an neighbor on this level exists
bool neighbor () const;
......@@ -550,7 +550,9 @@ private:
template<int cd, PartitionIteratorType pitype, class GridImp>
class ALU3dGridLevelIterator
: public ALU3dGridEntityPointer< cd, GridImp >,
public ALU3dGridTreeIterator< ALU3DSPACE ALU3dGridLevelIteratorWrapper< (GridImp::dimension == 2 && cd == 2) ? 3 : cd, pitype, typename GridImp::MPICommunicatorType > >
public ALU3dGridTreeIterator<typename ALU3DSPACE IteratorSTI<
typename ALU3DSPACE IteratorElType< (GridImp::dimension == 2 && cd == 2) ? 3 : cd, typename GridImp::MPICommunicatorType >::val_t > >
//ALU3DSPACE ALU3dGridLevelIteratorWrapper< (GridImp::dimension == 2 && cd == 2) ? 3 : cd, pitype, typename GridImp::MPICommunicatorType > >
{
enum { dim = GridImp::dimension };
enum { dimworld = GridImp::dimensionworld };
......@@ -563,7 +565,11 @@ class ALU3dGridLevelIterator
friend class ALU3dGridEntity<0,dim,GridImp>;
friend class ALU3dGrid< dim, dimworld, GridImp::elementType, Comm >;
friend class ALU3dGridTreeIterator< ALU3DSPACE ALU3dGridLevelIteratorWrapper< (GridImp::dimension == 2 && cd == 2) ? 3 : cd, pitype, Comm > >;
friend class ALU3dGridTreeIterator<
typename ALU3DSPACE IteratorSTI<
typename ALU3DSPACE IteratorElType< (GridImp::dimension == 2 && cd == 2) ? 3 : cd, typename GridImp::MPICommunicatorType >::val_t >
//ALU3DSPACE ALU3dGridLevelIteratorWrapper< (GridImp::dimension == 2 && cd == 2) ? 3 : cd, pitype, Comm >
>;
typedef ALU3dGridEntityPointer< cd, GridImp > BaseType;
public:
......@@ -573,9 +579,11 @@ public:
//! typedef of my type
typedef ALU3dGridLevelIterator<cd,pitype,GridImp> ThisType;
// the wrapper for the original iterator of the ALU3dGrid
typedef typename ALU3DSPACE ALU3dGridLevelIteratorWrapper< (GridImp::dimension == 2 && cd == 2) ? 3 : cd, pitype, Comm > IteratorType;
typedef IteratorType InternalIteratorType;
//typedef typename ALU3DSPACE ALU3dGridLevelIteratorWrapper< (GridImp::dimension == 2 && cd == 2) ? 3 : cd, pitype, Comm > IteratorType;
typedef typename ALU3DSPACE IteratorElType< (GridImp::dimension == 2 && cd == 2) ? 3 : cd, Comm >::val_t val_t;
typedef typename ALU3DSPACE IteratorSTI< val_t > IteratorType ;
typedef IteratorType InternalIteratorType;
/** \brief default constructor */
ALU3dGridLevelIterator () : grid_( nullptr ), iter_(), level_( 0 ) {}
......@@ -635,7 +643,8 @@ private:
template<int cdim, PartitionIteratorType pitype, class GridImp>
class ALU3dGridLeafIterator
: public ALU3dGridEntityPointer< cdim, GridImp >,
public ALU3dGridTreeIterator< ALU3DSPACE ALU3dGridLeafIteratorWrapper< (GridImp::dimension == 2 && cdim == 2) ? 3 : cdim, pitype, typename GridImp::MPICommunicatorType > >
public ALU3dGridTreeIterator<typename ALU3DSPACE IteratorSTI<
typename ALU3DSPACE IteratorElType< (GridImp::dimension == 2 && cdim == 2) ? 3 : cdim, typename GridImp::MPICommunicatorType >::val_t > >
{
enum { dim = GridImp :: dimension };
......@@ -649,11 +658,11 @@ class ALU3dGridLeafIterator
public:
typedef typename GridImp::template Codim<cdim>::Entity Entity;
typedef typename ALU3DSPACE ALU3dGridLeafIteratorWrapper< (GridImp::dimension == 2 && cdim == 2) ? 3 : cdim, pitype, Comm > IteratorType ;
typedef typename ALU3DSPACE IteratorElType< (GridImp::dimension == 2 && cdim == 2) ? 3 : cdim, Comm >::val_t val_t;
typedef typename ALU3DSPACE IteratorSTI< val_t > IteratorType ;
friend class ALU3dGridTreeIterator< IteratorType > ;
typedef IteratorType InternalIteratorType;
typedef typename ALU3DSPACE IteratorElType< (GridImp::dimension == 2 && cdim == 2) ? 3 : cdim, Comm >::val_t val_t;
typedef ALU3dGridLeafIterator<cdim, pitype, GridImp> ThisType;
......@@ -827,6 +836,7 @@ private:
} // end namespace Dune
#include "iterator_imp.cc"
#if COMPILE_ALUGRID_INLINE
#include "iterator.cc"
#endif
#endif // header guard
This diff is collapsed.
......@@ -1303,7 +1303,11 @@ namespace Dune {
return _invTransposed;
}
#if COMPILE_ALUGRID_LIB
#if ! COMPILE_ALUGRID_INLINE
namespace {
typedef const alu3d_ctype* dummyFunction( void );
}
// Instantiation
class TrilinearMapping ;
template void TrilinearMapping::buildMapping< TrilinearMapping::coord_t >
......@@ -1315,15 +1319,15 @@ namespace Dune {
const TrilinearMapping::coord_t& ,
const TrilinearMapping::coord_t& ,
const TrilinearMapping::coord_t& );
template void TrilinearMapping::buildMapping< TrilinearMapping::double_t >
(const TrilinearMapping::double_t& ,
const TrilinearMapping::double_t& ,
const TrilinearMapping::double_t& ,
const TrilinearMapping::double_t& ,
const TrilinearMapping::double_t& ,
const TrilinearMapping::double_t& ,
const TrilinearMapping::double_t& ,
const TrilinearMapping::double_t& );
template void TrilinearMapping::buildMapping< alu3d_ctype const* >
(alu3d_ctype const* const&,
alu3d_ctype const* const&,
alu3d_ctype const* const&,
alu3d_ctype const* const&,
alu3d_ctype const* const&,
alu3d_ctype const* const&,
alu3d_ctype const* const&,
alu3d_ctype const* const& );
class SurfaceNormalCalculator ;
......@@ -1359,63 +1363,63 @@ namespace Dune {
const LinearMapping<3, 3>::world_t&,
const LinearMapping<3, 3>::world_t&,
const LinearMapping<3, 3>::world_t& );
template void LinearMapping<3, 3>::buildMapping< LinearMapping<3, 3>::double_t >
( const LinearMapping<3, 3>::double_t&,
const LinearMapping<3, 3>::double_t&,
const LinearMapping<3, 3>::double_t&,
const LinearMapping<3, 3>::double_t& );
template void LinearMapping<3, 3>::buildMapping< alu3d_ctype const* >
( alu3d_ctype const* const&,
alu3d_ctype const* const&,
alu3d_ctype const* const&,
alu3d_ctype const* const& );
template class LinearMapping<3, 2> ;
template void LinearMapping<3, 2>::buildMapping< LinearMapping<3, 2>::world_t >
( const LinearMapping<3, 2>::world_t&,
const LinearMapping<3, 2>::world_t&,
const LinearMapping<3, 2>::world_t&);
template void LinearMapping<3, 2>::buildMapping< LinearMapping<3, 2>::double_t >
( const LinearMapping<3, 2>::double_t&,
const LinearMapping<3, 2>::double_t&,
const LinearMapping<3, 2>::double_t&);
template void LinearMapping<3, 2>::buildMapping< alu3d_ctype const* >
( alu3d_ctype const* const&,
alu3d_ctype const* const&,
alu3d_ctype const* const& );
template class LinearMapping<2, 2> ;
template void LinearMapping<2, 2>::buildMapping< LinearMapping<2, 2>::world_t >
( const LinearMapping<2, 2>::world_t&,
const LinearMapping<2, 2>::world_t&,
const LinearMapping<2, 2>::world_t&);
template void LinearMapping<2, 2>::buildMapping< LinearMapping<2, 2>::double_t >
( const LinearMapping<2, 2>::double_t&,
const LinearMapping<2, 2>::double_t&,
const LinearMapping<2, 2>::double_t&);
template void LinearMapping<2, 2>::buildMapping< alu3d_ctype const* >
( alu3d_ctype const* const&,
alu3d_ctype const* const&,
alu3d_ctype const* const& );
template class LinearMapping<3, 1> ;
template void LinearMapping<3, 1>::buildMapping< LinearMapping<3, 1>::world_t >
( const LinearMapping<3, 1>::world_t&,
const LinearMapping<3, 1>::world_t& );
template void LinearMapping<3, 1>::buildMapping< LinearMapping<3, 1>::double_t >
( const LinearMapping<3, 1>::double_t&,
const LinearMapping<3, 1>::double_t& );
template void LinearMapping<3, 1>::buildMapping< alu3d_ctype const* >
( alu3d_ctype const* const&,
alu3d_ctype const* const& );
template class LinearMapping<2, 1> ;
template void LinearMapping<2, 1>::buildMapping< LinearMapping<2, 1>::world_t >
( const LinearMapping<2, 1>::world_t&,
const LinearMapping<2, 1>::world_t& );
template void LinearMapping<2, 1>::buildMapping< LinearMapping<2, 1>::double_t >
( const LinearMapping<2, 1>::double_t&,
const LinearMapping<2, 1>::double_t& );
template void LinearMapping<2, 1>::buildMapping< alu3d_ctype const* >
( alu3d_ctype const* const&,
alu3d_ctype const* const& );
/// wtf?
template void LinearMapping<2, 1>::buildMapping< LinearMapping<3, 1>::world_t >
( const LinearMapping<3, 1>::world_t&,
const LinearMapping<3, 1>::world_t& );
template class LinearMapping<3, 0> ;
template void LinearMapping<3, 0>::buildMapping< LinearMapping<3, 0>::double_t >
( const LinearMapping<3, 0>::double_t& );
template void LinearMapping<3, 0>::buildMapping< LinearMapping<3, 0>::world_t >
( const LinearMapping<3, 0>::world_t& );
template void LinearMapping<3, 0>::buildMapping< alu3d_ctype const* >
( alu3d_ctype const* const& );
template class LinearMapping<2, 0> ;
template void LinearMapping<2, 0>::buildMapping< LinearMapping<2, 0>::world_t >
( const LinearMapping<2, 0>::world_t& );
template void LinearMapping<2, 0>::buildMapping< LinearMapping<2, 0>::double_t >
( const LinearMapping<2, 0>::double_t& );
template void LinearMapping<2, 0>::buildMapping< alu3d_ctype const* >
( alu3d_ctype const* const& );
template class BilinearMapping< 2 > ;
template void BilinearMapping< 2 >::buildMapping< BilinearMapping< 2 >::world_t >
......@@ -1430,7 +1434,7 @@ namespace Dune {
const BilinearMapping< 3 >::world_t&,
const BilinearMapping< 3 >::world_t&,
const BilinearMapping< 3 >::world_t& );
#endif
#endif // ! COMPILE_ALUGRID_INLINE
} // end namespace Dune
#endif // end DUNE_ALUGRID_MAPPINGS_IMP_CC
......
This diff is collapsed.
if( DUNE_ALUGRID_COMPILE_BINDINGS )
set(ALUGRID_LIB_SOURCES
${PROJECT_SOURCE_DIR}/dune/alugrid/3d/iterator.cc
${PROJECT_SOURCE_DIR}/dune/alugrid/3d/indexsets.cc
${PROJECT_SOURCE_DIR}/dune/alugrid/3d/mappings_imp.cc
# ${PROJECT_SOURCE_DIR}/dune/alugrid/3d/grid_imp.cc
${PROJECT_SOURCE_DIR}/dune/alugrid/3d/entity_imp.cc)
endif()
# build library libdunealugrid
dune_add_library(dunealugrid
_DUNE_TARGET_OBJECTS:serial_
_DUNE_TARGET_OBJECTS:parallel_
${ALUGRID_LIB_SOURCES}
${PROJECT_SOURCE_DIR}/dune/alugrid/3d/faceutility.cc
${PROJECT_SOURCE_DIR}/dune/alugrid/3d/mappings.cc
${PROJECT_SOURCE_DIR}/dune/alugrid/3d/topology.cc)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment