1#ifndef HLDO_SPHERE_DEBUG_DIRAC_CONVERGENCE_H
2#define HLDO_SPHERE_DEBUG_DIRAC_CONVERGENCE_H
10#include <dirac_operator_source_problem.h>
11#include <lf/io/vtk_writer.h>
12#include <lf/mesh/hybrid2d/mesh_factory.h>
13#include <lf/mesh/utils/tp_triag_mesh_builder.h>
14#include <lf/mesh/utils/utils.h>
15#include <lf/quad/quad.h>
16#include <lf/refinement/refinement.h>
17#include <lf/uscalfe/uscalfe.h>
18#include <mesh_function_whitney_one.h>
19#include <mesh_function_whitney_two.h>
20#include <mesh_function_whitney_zero.h>
22#include <results_processing.h>
23#include <sphere_triag_mesh_builder.h>
40 std::vector<Eigen::Matrix<complex, Eigen::Dynamic, 1>>
mu_zero;
41 std::vector<Eigen::Matrix<complex, Eigen::Dynamic, 1>>
mu_one;
42 std::vector<Eigen::Matrix<complex, Eigen::Dynamic, 1>>
mu_two;
73 std::function<
complex(
const Eigen::Matrix<double, 3, 1> &)> f_zero,
75 Eigen::Matrix<complex, 3, 1>(
const Eigen::Matrix<double, 3, 1> &)>
77 std::function<
complex(
const Eigen::Matrix<double, 3, 1> &)> f_two,
89 void Compute(
unsigned refinement_levels);
93 std::function<Eigen::Matrix<complex, 3, 1>(
94 const Eigen::Matrix<double, 3, 1> &)>
Class to test the convergence of the Dirac operator.
DiracConvergenceTest(std::function< complex(const Eigen::Matrix< double, 3, 1 > &)> f_zero, std::function< Eigen::Matrix< complex, 3, 1 >(const Eigen::Matrix< double, 3, 1 > &)> f_one, std::function< complex(const Eigen::Matrix< double, 3, 1 > &)> f_two, double &k)
Constructor setting all the functions and the reference k.
std::function< complex(const Eigen::Matrix< double, 3, 1 > &)> f_zero_
std::function< Eigen::Matrix< complex, 3, 1 >(const Eigen::Matrix< double, 3, 1 > &)> f_one_
std::function< complex(const Eigen::Matrix< double, 3, 1 > &)> f_two_
void Compute(unsigned refinement_levels)
Solves the dirac opeartor source problems up to the given refinement_level.
std::complex< double > complex
Implementation of the thesis Hogde Laplacians and Dirac Operators on the surface of the 3-Sphere.
stores solutions for a number of refinement levels
std::vector< Eigen::Matrix< complex, Eigen::Dynamic, 1 > > mu_one
std::vector< Eigen::Matrix< complex, Eigen::Dynamic, 1 > > mu_zero
std::vector< Eigen::Matrix< complex, Eigen::Dynamic, 1 > > mu_two