29#ifndef VFP_PDESYSTEM_H
30#define VFP_PDESYSTEM_H
32#include <deal.II/base/table.h>
34#include <deal.II/dofs/dof_tools.h>
36#include <deal.II/lac/lapack_full_matrix.h>
37#include <deal.II/lac/vector.h>
97 static std::vector<std::array<unsigned int, 3>>
109 static std::vector<std::string>
111 const std::string &prefix =
"f_");
126 const unsigned int dim_cs,
128 dealii::Table<2, dealii::DoFTools::Coupling> &cell_integrals_mask,
129 dealii::Table<2, dealii::DoFTools::Coupling> &face_integrals_mask)
140 const std::vector<dealii::LAPACKFullMatrix<double>> &
148 const std::vector<dealii::LAPACKFullMatrix<double>> &
156 const dealii::Vector<double> &
164 const std::vector<dealii::LAPACKFullMatrix<double>> &
172 const std::vector<dealii::LAPACKFullMatrix<double>> &
180 const std::vector<dealii::LAPACKFullMatrix<double>> &
193 template <
typename StreamType>
197 os <<
"Ordering of the lms indices: " << std::endl;
199 for (
const std::array<unsigned int, 3> &lms :
lms_indices)
201 os << i <<
": " << lms[0] << lms[1] << lms[2] <<
"\n";
269 std::vector<dealii::LAPACKFullMatrix<double>> advection_matrices;
272 std::vector<dealii::LAPACKFullMatrix<double>> generator_rotation_matrices;
275 dealii::Vector<double> collision_matrix;
278 std::vector<dealii::LAPACKFullMatrix<double>> adv_mat_products;
281 std::vector<dealii::LAPACKFullMatrix<double>> adv_x_gen_matrices;
284 std::vector<dealii::LAPACKFullMatrix<double>> t_matrices;
290 create_advection_matrices();
292 create_generator_rotation_matrices();
294 create_collision_matrix();
296 compute_adv_mat_products();
298 compute_adv_cross_generators();
300 compute_t_matrices();
static std::vector< std::string > create_component_name_list(const unsigned int system_size, const std::string &prefix="f_")
Create a list of component names, f_lms.
Definition pde-system.cpp:81
const dealii::Vector< double > & get_collision_matrix() const
Get the collision matrix object.
Definition pde-system.cpp:210
const std::vector< dealii::LAPACKFullMatrix< double > > & get_generator_rotation_matrices() const
Get the generator rotation matrices object.
Definition pde-system.cpp:202
const std::vector< std::array< unsigned int, 3 > > lms_indices
Map between system index and spherical harmonic indices .
Definition pde-system.h:78
const std::vector< dealii::LAPACKFullMatrix< double > > & get_adv_mat_products() const
Get the adv mat products object.
Definition pde-system.cpp:218
void print_pde_system(std::ostream &os) const
Print the full PDE system.
Definition pde-system.cpp:334
const unsigned int system_size
Size of the system.
Definition pde-system.h:70
void print_adv_mat_products(std::ostream &os) const
Print the adv mat products.
Definition pde-system.cpp:280
PDESystem(const unsigned int expansion_order)
Definition pde-system.cpp:34
void print_generator_rotation_matrices(std::ostream &os) const
Print the generator rotation matrices.
Definition pde-system.cpp:256
const std::vector< dealii::LAPACKFullMatrix< double > > & get_adv_cross_gen() const
Get the adv cross gen object.
Definition pde-system.cpp:226
const unsigned int expansion_order
Definition pde-system.h:62
static std::vector< std::array< unsigned int, 3 > > create_lms_indices(const unsigned int system_size)
Create a mapping between the system index and the spherical harmonic indices .
Definition pde-system.cpp:56
void compute_coupling_tables(const unsigned int dim_cs, const VFPFlags vfp_flags, dealii::Table< 2, dealii::DoFTools::Coupling > &cell_integrals_mask, dealii::Table< 2, dealii::DoFTools::Coupling > &face_integrals_mask) const
Compute the coupling tables.
Definition pde-system.cpp:101
const std::vector< dealii::LAPACKFullMatrix< double > > & get_t_matrices() const
Get the t matrices object.
Definition pde-system.cpp:234
void print_t_matrices(std::ostream &os) const
Print the t matrices.
Definition pde-system.cpp:314
void print_collision_matrix(std::ostream &os) const
Print the collision matrix.
Definition pde-system.cpp:271
void print_lms_indices(StreamType &os) const
Print the lms indices ordering.
Definition pde-system.h:195
void print_adv_cross_gen(std::ostream &os) const
Print the adv cross gen.
Definition pde-system.cpp:300
void print_advection_matrices(std::ostream &os) const
Print the advection matrices.
Definition pde-system.cpp:242
const std::vector< dealii::LAPACKFullMatrix< double > > & get_advection_matrices() const
Get the advection matrices object.
Definition pde-system.cpp:194
Namespace for the Vlasov-Fokker-Planck module.
Definition config.h:123
VFPFlags
Flags to activate the different terms of the VFP equation.
Definition vfp-flags.h:75
constexpr VFPFlags vfp_flags
Definition config.h:135
Namespace for Sapphire++.
Definition config.h:51
Define sapphirepp::VFP::VFPFlags and other enums used by the sapphirepp::VFP module.