/home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/common/linear_algebra.hh File Reference#
|
DiFfRG
Discretization Framework for functional Renormalization Group flows
|
All compile-time knowledge about which linear algebra types DiFfRG uses. More...
#include <deal.II/base/config.h>#include <deal.II/lac/block_sparse_matrix.h>#include <deal.II/lac/block_sparsity_pattern.h>#include <deal.II/lac/block_vector.h>#include <deal.II/lac/dynamic_sparsity_pattern.h>#include <deal.II/lac/sparse_direct.h>#include <deal.II/lac/sparse_matrix.h>#include <deal.II/lac/vector.h>#include <deal.II/grid/tria.h>#include <type_traits>Go to the source code of this file.
Namespaces | |
| namespace | DiFfRG |
| namespace | DiFfRG::get_type |
| namespace | DiFfRG::get_type::internal |
Concepts | |
| concept | DiFfRG::SupportedVectorType |
| A vector type DiFfRG's timesteppers and assemblers can work with. | |
Typedefs | |
| template<typename VectorType > | |
| using | DiFfRG::get_type::NumberType = typename internal::_NumberType<VectorType>::value |
| template<typename SparseMatrixType > | |
| using | DiFfRG::get_type::SparsityPattern = typename internal::_SparsityPattern<SparseMatrixType>::value |
| template<typename SparseMatrixType > | |
| using | DiFfRG::get_type::InverseSparseMatrixType = typename internal::_InverseSparseMatrixType<SparseMatrixType>::value |
| template<typename VectorType > | |
| using | DiFfRG::get_type::BlockVectorType = typename internal::_BlockVectorType<VectorType>::value |
| The block-vector type belonging to a given vector type. | |
| template<int dim> | |
| using | DiFfRG::DefaultTriangulation = dealii::Triangulation<dim> |
| template<typename Mesh , typename NumberType > | |
| using | DiFfRG::LAVectorFor = dealii::Vector<NumberType> |
| template<typename Mesh , typename NumberType > | |
| using | DiFfRG::LASparseMatrixFor = dealii::SparseMatrix<NumberType> |
Variables | |
| template<typename T > | |
| constexpr bool | DiFfRG::is_distributed_la = false |
| Whether a linear algebra type distributes its rows across MPI ranks. | |
Detailed Description
All compile-time knowledge about which linear algebra types DiFfRG uses.
This is the single place that knows the types: which vector belongs to which matrix, which of them are distributed, and what an unqualified build gets by default. It deliberately holds no runtime code – the MPI-collective helpers that branch on this knowledge live in discretization/common/la_policy.hh, and the linear-solver selection lives in timestepping/default_linear_solver.hh (solvers sit above this layer, so naming them here would invert the include order).
Split out of common/types.hh, which now keeps only the generic C++ concepts. That matters beyond tidiness: everything under physics/ needs get_type::ctype and nothing else, yet used to pull sparse_direct.h, block_sparse_matrix.h and four PETSc headers into every Kokkos/CUDA translation unit through this include.
Generated by