LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
Public Member Functions | Private Attributes | List of all members
projects::hldo_sphere::experiments::DiracOperatorExperiment Class Reference

Creates and solves the discretised Dirac Operator source problems for a given list of levels and values of k. More...

#include </home/nico/bildung/SemVI/thesis/lehrfempp/projects/hldo_sphere/experiments/dirac_operators/dirac_operator_experiment.h>

Public Member Functions

 DiracOperatorExperiment (std::function< complex(const Eigen::Matrix< double, 3, 1 > &)> u_zero, std::function< Eigen::Matrix< complex, 3, 1 >(const Eigen::Matrix< double, 3, 1 > &)> u_one, std::function< complex(const Eigen::Matrix< double, 3, 1 > &)> u_two, 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, std::string name)
 Constructor setting all the functions and the reference k. More...
 
void Compute (std::vector< unsigned > refinement_levels, std::vector< double > ks)
 Solves the hodge laplacian source problems for the tensor product of passed refinement levels and ks. More...
 

Private Attributes

std::function< complex(const Eigen::Matrix< double, 3, 1 > &)> u_zero_
 
std::function< Eigen::Matrix< complex, 3, 1 >(const Eigen::Matrix< double, 3, 1 > &)> u_one_
 
std::function< complex(const Eigen::Matrix< double, 3, 1 > &)> u_two_
 
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_
 
std::string name_
 

Detailed Description

Creates and solves the discretised Dirac Operator source problems for a given list of levels and values of k.

Details about the experiments can be found in the thesis Hodge-Laplacians and Dirac Operators on the Surface of the 3-Sphere chapter 6.

Definition at line 45 of file dirac_operator_experiment.h.

Constructor & Destructor Documentation

◆ DiracOperatorExperiment()

projects::hldo_sphere::experiments::DiracOperatorExperiment::DiracOperatorExperiment ( std::function< complex(const Eigen::Matrix< double, 3, 1 > &)>  u_zero,
std::function< Eigen::Matrix< complex, 3, 1 >(const Eigen::Matrix< double, 3, 1 > &)>  u_one,
std::function< complex(const Eigen::Matrix< double, 3, 1 > &)>  u_two,
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,
std::string  name 
)
inline

Constructor setting all the functions and the reference k.

Parameters
u_zeroanalytical soltions corresponding to the load function f_zero
u_oneanalytical soltions corresponding to the load function f_one
u_twoanalytical soltions corresponding to the load function f_two
f_zeroload function corresponding to the analytical solution u_zero
f_oneload function corresponding to the analytical solution u_one
f_twoload function corresponding to the analytical solution u_two
kreference used in all the functions such that changes of k affect the functions
nameidentifier of the example (cretes a folder with this name for the results)

Definition at line 63 of file dirac_operator_experiment.h.

Member Function Documentation

◆ Compute()

void projects::hldo_sphere::experiments::DiracOperatorExperiment::Compute ( std::vector< unsigned >  refinement_levels,
std::vector< double >  ks 
)
inline

Member Data Documentation

◆ f_one_

std::function<Eigen::Matrix<complex, 3, 1>( const Eigen::Matrix<double, 3, 1> &)> projects::hldo_sphere::experiments::DiracOperatorExperiment::f_one_
private

Definition at line 230 of file dirac_operator_experiment.h.

Referenced by Compute().

◆ f_two_

std::function<complex(const Eigen::Matrix<double, 3, 1> &)> projects::hldo_sphere::experiments::DiracOperatorExperiment::f_two_
private

Definition at line 231 of file dirac_operator_experiment.h.

Referenced by Compute().

◆ f_zero_

std::function<complex(const Eigen::Matrix<double, 3, 1> &)> projects::hldo_sphere::experiments::DiracOperatorExperiment::f_zero_
private

Definition at line 227 of file dirac_operator_experiment.h.

Referenced by Compute().

◆ k_

double& projects::hldo_sphere::experiments::DiracOperatorExperiment::k_
private

Definition at line 232 of file dirac_operator_experiment.h.

Referenced by Compute().

◆ name_

std::string projects::hldo_sphere::experiments::DiracOperatorExperiment::name_
private

Definition at line 233 of file dirac_operator_experiment.h.

Referenced by Compute().

◆ u_one_

std::function<Eigen::Matrix<complex, 3, 1>( const Eigen::Matrix<double, 3, 1> &)> projects::hldo_sphere::experiments::DiracOperatorExperiment::u_one_
private

Definition at line 225 of file dirac_operator_experiment.h.

Referenced by Compute().

◆ u_two_

std::function<complex(const Eigen::Matrix<double, 3, 1> &)> projects::hldo_sphere::experiments::DiracOperatorExperiment::u_two_
private

Definition at line 226 of file dirac_operator_experiment.h.

Referenced by Compute().

◆ u_zero_

std::function<complex(const Eigen::Matrix<double, 3, 1> &)> projects::hldo_sphere::experiments::DiracOperatorExperiment::u_zero_
private

Definition at line 222 of file dirac_operator_experiment.h.

Referenced by Compute().


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