FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ > Class Template Reference

Additive Macro-wise Matrix-based Vanka preconditioner/smoother. More...

#include <voxel_amavanka.hpp>

Inheritance diagram for FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >:
FEAT::Solver::AmaVanka< Matrix_, Filter_ > FEAT::Solver::SolverBase< Matrix_::VectorTypeL >

Public Types

typedef Solver::AmaVanka< Matrix_, Filter_ > BaseClass
 our base-class More...
 
typedef Matrix_::DataType DataType
 our data type More...
 
typedef Matrix_::IndexType IndexType
 our index type More...
 
typedef Matrix_::VectorTypeL VectorType
 our vector type More...
 

Public Member Functions

template<typename ColoringType_ >
 VoxelAmaVanka (const Matrix_ &matrix, const Filter_ &filter, const ColoringType_ &coloring, const DataType omega=DataType(1), const Index num_steps=Index(1))
 Constructor. More...
 
 VoxelAmaVanka (const VoxelAmaVanka &)=delete
 
 VoxelAmaVanka (VoxelAmaVanka &&) noexcept=delete
 
virtual Status apply (VectorType &vec_x, const VectorType &vec_b) override
 applies the preconditioner More...
 
std::size_t bytes () const
 Returns the total number of bytes currently allocated in this object. More...
 
void clear_macro_dofs ()
 Clears the macro dofs graphs. More...
 
bool compare (const AmaVanka *other) const
 
std::size_t data_size () const
 Returns the total data size used by the AmaVanka smoother. More...
 
virtual void done ()
 Finalization method. More...
 
virtual void done_numeric ()
 Numeric finalization method. More...
 
virtual void done_symbolic () override
 Frees symbolic values and device pointers. More...
 
template<typename ColoringType_ >
void fill_color (const ColoringType_ &color, int hint=-1)
 Fills the coloring data. More...
 
virtual void init ()
 Initialization method. More...
 
virtual void init_numeric () override
 Performs numeric factorization. More...
 
virtual void init_symbolic () override
 Initializes symbolic values and device pointers. More...
 
virtual String name () const override
 Returns the name of the solver. More...
 
VoxelAmaVankaoperator= (const VoxelAmaVanka &)=delete
 
VoxelAmaVankaoperator= (VoxelAmaVanka &&) noexcept=delete
 
void push_macro_dofs (Adjacency::Graph &&dofs)
 Pushes the dofs-at-macro graph of the next block. More...
 
void reset_timings ()
 Resets the internal stop watches for time measurement. More...
 
void set_num_steps (Index num_steps)
 Sets the number of smoothing steps. More...
 
void set_omega (DataType omega)
 Sets the damping parameter omega. More...
 
void set_skip_singular (bool skip_sing)
 Sets whether singular macros are to be skipped. More...
 
double time_apply () const
 Returns the total accumulated time for the solver application. More...
 
double time_init_numeric () const
 Returns the total accumulated time for numeric initialization. More...
 
double time_init_symbolic () const
 Returns the total accumulated time for symbolic initialization. More...
 

Protected Types

typedef Intern::CSRTupleMatrixWrapper< DataType, IndexType, Intern::AmaVankaMatrixHelper< Matrix_ >::num_blocks > MatrixWrapper
 our matrix data wrapper More...
 
typedef Intern::AmaVankaMatrixHelper< Matrix_ >::VankaMatrix VankaMatrixType
 the type of our Vanka matrix More...
 
typedef Intern::CSRTupleMatrixWrapper< DataType, IndexType, Intern::AmaVankaMatrixHelper< VankaMatrixType >::num_blocks > VankaWrapper
 our vanka data wrapper More...
 

Protected Member Functions

void _alloc_device ()
 Allocates device pointers, if required. More...
 
void _alloc_max_degrees ()
 Calculate the max degree of our graphs. More...
 
void _free_device ()
 Frees device pointers. More...
 
void _init_numeric_cuda (const MatrixWrapper &mat_wrap, VankaWrapper &vanka_wrap, Index num_macros, Index stride, DataType eps)
 Calls cuda numeric kernel. More...
 
void _init_numeric_generic (const MatrixWrapper &mat_wrap, VankaWrapper &vanka_wrap, Index num_macros, Index stride, DataType eps)
 Calls generic numeric kernel. More...
 

Protected Attributes

bool _allocate_device = false
 flag whether we should allocate additional device pointer More...
 
bool _auto_macros
 deduct macro dofs automatically? More...
 
Adjacency::ColoringDataHandler _coloring_data
 coloring More...
 
std::vector< Index * > _d_dof_macros
 
std::vector< Index * > _d_macro_dofs
 vector of graph arrays More...
 
int * _d_macro_mask
 array of macro mask More...
 
std::vector< Adjacency::Graph_dof_macros
 
const Filter_ & _filter
 the system filter More...
 
std::vector< Adjacency::Graph_macro_dofs
 the DOF-macro graphs More...
 
std::vector< int > _macro_mask
 the macro mask More...
 
const Matrix_ & _matrix
 the system matrix More...
 
std::vector< Index_max_degree_dofs
 size data More...
 
std::vector< Index_max_degree_macros
 
Index _num_steps
 number of steps More...
 
int _num_threads
 number of threads for numeric factorization More...
 
DataType _omega
 damping parameter More...
 
bool _skip_singular
 skip singular macros? More...
 
VankaMatrixType _vanka
 the Vanka preconditioner matrix More...
 
VectorType _vec_c
 temporary vectors More...
 
VectorType _vec_d
 
StopWatch watch_apply
 
StopWatch watch_init_numeric
 
StopWatch watch_init_symbolic
 

Detailed Description

template<typename Matrix_, typename Filter_, FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
class FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >

Additive Macro-wise Matrix-based Vanka preconditioner/smoother.

Template Parameters
Matrix_The MatrixType of the system matrix.
Filter_The FilterType to be used.
pol_threading_The threading policy to be used. Defaults to batched assembly.
macro_type_The macro policy to be used. Defaults to uniform macros.

This class implements an additive macro-wise Vanka smoother, which stores its pre-computed operator as a sparse matrix, so that each application of the Vanka smoother consists of only one sparse matrix-vector multiplication.

This class is based on the standard Amavanka smoother and differs in one major point: The backend of the numeric assembly of the underlying vanka matrix can be chosen at runtime by the PreferredBackend static variable and supports (for now) a, on OpenMP based, threadparallel generic assembly and a CUDA based device assembly.

This class supports all matrix-types and macro distributions that the AmaVanka baseclass does. For specific information of the AmaVanka solver refer to the baseclass documentation.

Attention
Due to the threadparallel nature of the assembly, this class requires a valid macro coloring to be added either to the constructor or added by the fill_color() method before the symbolic initialization is started.
Author
Maximilian Esser

Definition at line 303 of file voxel_amavanka.hpp.

Member Typedef Documentation

◆ BaseClass

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
typedef Solver::AmaVanka<Matrix_, Filter_> FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::BaseClass

our base-class

Definition at line 308 of file voxel_amavanka.hpp.

◆ DataType

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
typedef Matrix_::DataType FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::DataType

our data type

Definition at line 311 of file voxel_amavanka.hpp.

◆ IndexType

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
typedef Matrix_::IndexType FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::IndexType

our index type

Definition at line 313 of file voxel_amavanka.hpp.

◆ MatrixWrapper

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
typedef Intern::CSRTupleMatrixWrapper<DataType, IndexType, Intern::AmaVankaMatrixHelper<Matrix_>::num_blocks> FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::MatrixWrapper
protected

our matrix data wrapper

Definition at line 321 of file voxel_amavanka.hpp.

◆ VankaMatrixType

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
typedef Intern::AmaVankaMatrixHelper<Matrix_>::VankaMatrix FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::VankaMatrixType
protected

the type of our Vanka matrix

Definition at line 319 of file voxel_amavanka.hpp.

◆ VankaWrapper

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
typedef Intern::CSRTupleMatrixWrapper<DataType, IndexType, Intern::AmaVankaMatrixHelper<VankaMatrixType>::num_blocks> FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::VankaWrapper
protected

our vanka data wrapper

Definition at line 323 of file voxel_amavanka.hpp.

◆ VectorType

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
typedef Matrix_::VectorTypeL FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::VectorType

our vector type

Definition at line 315 of file voxel_amavanka.hpp.

Constructor & Destructor Documentation

◆ VoxelAmaVanka()

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
template<typename ColoringType_ >
FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::VoxelAmaVanka ( const Matrix_ &  matrix,
const Filter_ &  filter,
const ColoringType_ &  coloring,
const DataType  omega = DataType(1),
const Index  num_steps = Index(1) 
)
inlineexplicit

Constructor.

Template Parameters
ColoringType_The type of the coloring array, should either be a vector of ints or a Coloring object.
Parameters
[in]matrixThe saddle-point system matrix.
[in]filterThe system filter.
[in]coloringThe coloring of the macros to be added. This should be used, if automatic marco deduction is used.
[in]omegaThe damping parameter.
[in]num_stepsThe number of smoothing steps to be performed.

Definition at line 515 of file voxel_amavanka.hpp.

References FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::_allocate_device, FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::_coloring_data, and FEAT::Adjacency::ColoringDataHandler::fill_color().

Member Function Documentation

◆ _alloc_device()

◆ _alloc_max_degrees()

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
void FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::_alloc_max_degrees ( )
inlineprotected

◆ _free_device()

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
void FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::_free_device ( )
inlineprotected

◆ _init_numeric_cuda()

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
void FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::_init_numeric_cuda ( const MatrixWrapper mat_wrap,
VankaWrapper vanka_wrap,
Index  num_macros,
Index  stride,
DataType  eps 
)
inlineprotected

◆ _init_numeric_generic()

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
void FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::_init_numeric_generic ( const MatrixWrapper mat_wrap,
VankaWrapper vanka_wrap,
Index  num_macros,
Index  stride,
DataType  eps 
)
inlineprotected

Calls generic numeric kernel.

Parameters
[in]mat_wrapWrapper of the system matrix.
[in/out]vanka_wrap Wrapper of the vanka matrix.
[in]num_macrosNumber of macros. Ignored.
[in]strideThe local matrix stride.
[in]epsTolerance for singular matrix identifaication.

Definition at line 446 of file voxel_amavanka.hpp.

References FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_macro_dofs, FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_macro_mask, FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_omega, and FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_skip_singular.

Referenced by FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::init_numeric().

◆ apply()

template<typename Matrix_ , typename Filter_ >
virtual Status FEAT::Solver::AmaVanka< Matrix_, Filter_ >::apply ( VectorType vec_x,
const VectorType vec_b 
)
inlineoverridevirtualinherited

◆ bytes()

template<typename Matrix_ , typename Filter_ >
std::size_t FEAT::Solver::AmaVanka< Matrix_, Filter_ >::bytes ( ) const
inlineinherited

Returns the total number of bytes currently allocated in this object.

Definition at line 212 of file amavanka.hpp.

References FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_macro_dofs, FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_vanka, and FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_vec_c.

◆ clear_macro_dofs()

template<typename Matrix_ , typename Filter_ >
void FEAT::Solver::AmaVanka< Matrix_, Filter_ >::clear_macro_dofs ( )
inlineinherited

Clears the macro dofs graphs.

Definition at line 143 of file amavanka.hpp.

References FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_auto_macros.

◆ compare()

template<typename Matrix_ , typename Filter_ >
bool FEAT::Solver::AmaVanka< Matrix_, Filter_ >::compare ( const AmaVanka< Matrix_, Filter_ > *  other) const
inlineinherited

Definition at line 472 of file amavanka.hpp.

◆ data_size()

template<typename Matrix_ , typename Filter_ >
std::size_t FEAT::Solver::AmaVanka< Matrix_, Filter_ >::data_size ( ) const
inlineinherited

Returns the total data size used by the AmaVanka smoother.

Returns
The total data size, i.e. the total number of floating point values used in the factorization.

Definition at line 230 of file amavanka.hpp.

References FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_vanka.

◆ done()

virtual void FEAT::Solver::SolverBase< Matrix_::VectorTypeL >::done ( )
inlinevirtualinherited

Finalization method.

This function performs both the symbolic and numeric finalization, i.e. it simply performs

this->done_numeric();
this->done_symbolic();

Definition at line 283 of file base.hpp.

◆ done_numeric()

virtual void FEAT::Solver::SolverBase< Matrix_::VectorTypeL >::done_numeric ( )
inlinevirtualinherited

Numeric finalization method.

This method is called to release any data allocated in the numeric initialization step.

Reimplemented in FEAT::Solver::GenericUmfpack< Matrix_ >.

Definition at line 246 of file base.hpp.

◆ done_symbolic()

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
virtual void FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::done_symbolic ( )
inlineoverridevirtual

◆ fill_color()

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
template<typename ColoringType_ >
void FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::fill_color ( const ColoringType_ &  color,
int  hint = -1 
)
inline

Fills the coloring data.

Template Parameters
ColoringType_Arraytype mapping index to a color
Parameters
[in]colorThe coloring data. Has to fit the macro dofs, i.e. call after pushing all macro dofs.
[in]hintOptionally give hint on the number of colors.

Definition at line 600 of file voxel_amavanka.hpp.

References FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::_coloring_data, FEAT::Adjacency::ColoringDataHandler::fill_color(), and XASSERTM.

◆ init()

virtual void FEAT::Solver::SolverBase< Matrix_::VectorTypeL >::init ( )
inlinevirtualinherited

Initialization method.

This function performs both the symbolic and numeric initialization, i.e. it simply performs

this->init_symbolic();
this->init_numeric();

Definition at line 268 of file base.hpp.

◆ init_numeric()

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
virtual void FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::init_numeric ( )
inlineoverridevirtual

◆ init_symbolic()

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
virtual void FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::init_symbolic ( )
inlineoverridevirtual

◆ name()

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
virtual String FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::name ( ) const
inlineoverridevirtual

Returns the name of the solver.

Reimplemented from FEAT::Solver::AmaVanka< Matrix_, Filter_ >.

Definition at line 608 of file voxel_amavanka.hpp.

◆ push_macro_dofs()

template<typename Matrix_ , typename Filter_ >
void FEAT::Solver::AmaVanka< Matrix_, Filter_ >::push_macro_dofs ( Adjacency::Graph &&  dofs)
inlineinherited

Pushes the dofs-at-macro graph of the next block.

Parameters
[in]dofsThe dofs-at-macro graph of the block.

Definition at line 155 of file amavanka.hpp.

References FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_auto_macros, FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_macro_dofs, and XABORTM.

◆ reset_timings()

template<typename Matrix_ , typename Filter_ >
void FEAT::Solver::AmaVanka< Matrix_, Filter_ >::reset_timings ( )
inlineinherited

Resets the internal stop watches for time measurement.

Definition at line 238 of file amavanka.hpp.

References FEAT::StopWatch::reset().

◆ set_num_steps()

template<typename Matrix_ , typename Filter_ >
void FEAT::Solver::AmaVanka< Matrix_, Filter_ >::set_num_steps ( Index  num_steps)
inlineinherited

Sets the number of smoothing steps.

Parameters
[in]num_stepsThe number of smoothing steps to be performed.

Definition at line 180 of file amavanka.hpp.

References XASSERT.

◆ set_omega()

template<typename Matrix_ , typename Filter_ >
void FEAT::Solver::AmaVanka< Matrix_, Filter_ >::set_omega ( DataType  omega)
inlineinherited

Sets the damping parameter omega.

Parameters
[in]omegaThe damping parameter.

Definition at line 192 of file amavanka.hpp.

References XASSERT.

◆ set_skip_singular()

template<typename Matrix_ , typename Filter_ >
void FEAT::Solver::AmaVanka< Matrix_, Filter_ >::set_skip_singular ( bool  skip_sing)
inlineinherited

Sets whether singular macros are to be skipped.

Parameters
[in]skip_singSpecifies whether singular macros are to be skipped.

Definition at line 204 of file amavanka.hpp.

◆ time_apply()

template<typename Matrix_ , typename Filter_ >
double FEAT::Solver::AmaVanka< Matrix_, Filter_ >::time_apply ( ) const
inlineinherited

Returns the total accumulated time for the solver application.

Definition at line 264 of file amavanka.hpp.

References FEAT::StopWatch::elapsed().

◆ time_init_numeric()

template<typename Matrix_ , typename Filter_ >
double FEAT::Solver::AmaVanka< Matrix_, Filter_ >::time_init_numeric ( ) const
inlineinherited

Returns the total accumulated time for numeric initialization.

Definition at line 256 of file amavanka.hpp.

References FEAT::StopWatch::elapsed().

◆ time_init_symbolic()

template<typename Matrix_ , typename Filter_ >
double FEAT::Solver::AmaVanka< Matrix_, Filter_ >::time_init_symbolic ( ) const
inlineinherited

Returns the total accumulated time for symbolic initialization.

Definition at line 248 of file amavanka.hpp.

References FEAT::StopWatch::elapsed().

Member Data Documentation

◆ _allocate_device

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
bool FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::_allocate_device = false
protected

◆ _auto_macros

template<typename Matrix_ , typename Filter_ >
bool FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_auto_macros
protectedinherited

◆ _coloring_data

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
Adjacency::ColoringDataHandler FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::_coloring_data
protected

◆ _d_dof_macros

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
std::vector<Index*> FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::_d_dof_macros
protected

Definition at line 327 of file voxel_amavanka.hpp.

◆ _d_macro_dofs

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
std::vector<Index*> FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::_d_macro_dofs
protected

◆ _d_macro_mask

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
int* FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::_d_macro_mask
protected

◆ _dof_macros

template<typename Matrix_ , typename Filter_ >
std::vector<Adjacency::Graph> FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_dof_macros
protectedinherited

Definition at line 92 of file amavanka.hpp.

◆ _filter

template<typename Matrix_ , typename Filter_ >
const Filter_& FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_filter
protectedinherited

the system filter

Definition at line 84 of file amavanka.hpp.

◆ _macro_dofs

◆ _macro_mask

template<typename Matrix_ , typename Filter_ >
std::vector<int> FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_macro_mask
protectedinherited

◆ _matrix

template<typename Matrix_ , typename Filter_ >
const Matrix_& FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_matrix
protectedinherited

◆ _max_degree_dofs

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
std::vector<Index> FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::_max_degree_dofs
protected

◆ _max_degree_macros

template<typename Matrix_ , typename Filter_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
std::vector<Index> FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::_max_degree_macros
protected

Definition at line 329 of file voxel_amavanka.hpp.

◆ _num_steps

template<typename Matrix_ , typename Filter_ >
Index FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_num_steps
protectedinherited

number of steps

Definition at line 96 of file amavanka.hpp.

Referenced by FEAT::Solver::AmaVanka< Matrix_, Filter_ >::apply().

◆ _num_threads

template<typename Matrix_ , typename Filter_ >
int FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_num_threads
protectedinherited

number of threads for numeric factorization

Definition at line 110 of file amavanka.hpp.

◆ _omega

template<typename Matrix_ , typename Filter_ >
DataType FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_omega
protectedinherited

◆ _skip_singular

◆ _vanka

template<typename Matrix_ , typename Filter_ >
VankaMatrixType FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_vanka
protectedinherited

◆ _vec_c

template<typename Matrix_ , typename Filter_ >
VectorType FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_vec_c
protectedinherited

temporary vectors

Definition at line 100 of file amavanka.hpp.

Referenced by FEAT::Solver::AmaVanka< Matrix_, Filter_ >::bytes().

◆ _vec_d

template<typename Matrix_ , typename Filter_ >
VectorType FEAT::Solver::AmaVanka< Matrix_, Filter_ >::_vec_d
protectedinherited

Definition at line 100 of file amavanka.hpp.

◆ watch_apply

template<typename Matrix_ , typename Filter_ >
StopWatch FEAT::Solver::AmaVanka< Matrix_, Filter_ >::watch_apply
protectedinherited

Definition at line 107 of file amavanka.hpp.

◆ watch_init_numeric

template<typename Matrix_ , typename Filter_ >
StopWatch FEAT::Solver::AmaVanka< Matrix_, Filter_ >::watch_init_numeric
protectedinherited

Definition at line 105 of file amavanka.hpp.

◆ watch_init_symbolic

template<typename Matrix_ , typename Filter_ >
StopWatch FEAT::Solver::AmaVanka< Matrix_, Filter_ >::watch_init_symbolic
protectedinherited

Definition at line 103 of file amavanka.hpp.


The documentation for this class was generated from the following file: