/home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/discretization/common/abstract_data.hh Source File#

DiFfRG: /home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/discretization/common/abstract_data.hh Source File
DiFfRG
Discretization Framework for functional Renormalization Group flows
abstract_data.hh
Go to the documentation of this file.
1#pragma once
2
3// external libraries
4#include <deal.II/lac/vector.h>
5
6// DiFfRG
8
9namespace DiFfRG
10{
11 using namespace dealii;
12
20 template <typename NumberType, typename VectorType_ = dealii::Vector<NumberType>> class AbstractFlowingVariables
21 {
22 public:
31 using VectorType = VectorType_;
33
39 virtual BlockVectorType &data() = 0;
40 virtual const BlockVectorType &data() const = 0;
41
47 virtual VectorType &spatial_data() = 0;
48 virtual const VectorType &spatial_data() const = 0;
49
55 virtual VectorType &variable_data() = 0;
56 virtual const VectorType &variable_data() const = 0;
57 };
58
59} // namespace DiFfRG
A class to set up initial data for whatever discretization we have chosen. Also used to switch/manage...
Definition abstract_data.hh:21
virtual BlockVectorType & data()=0
Obtain the data vector holding both spatial (block 0) and variable (block 1) data.
virtual VectorType & spatial_data()=0
Obtain the spatial data vector.
virtual const VectorType & spatial_data() const =0
virtual const VectorType & variable_data() const =0
VectorType_ VectorType
The vector type holding the state.
Definition abstract_data.hh:31
virtual const BlockVectorType & data() const =0
virtual VectorType & variable_data()=0
Obtain the variable data vector.
get_type::BlockVectorType< VectorType > BlockVectorType
Definition abstract_data.hh:32
All compile-time knowledge about which linear algebra types DiFfRG uses.
typename internal::_BlockVectorType< VectorType >::value BlockVectorType
The block-vector type belonging to a given vector type.
Definition linear_algebra.hh:167
Definition complex_math.hh:10