DiFfRG
Loading...
Searching...
No Matches
EoM.hh File Reference
#include <deal.II/base/point.h>
#include <deal.II/dofs/dof_handler.h>
#include <deal.II/grid/grid_tools.h>
#include <deal.II/numerics/fe_field_function.h>
#include <gsl/gsl_multiroots.h>
#include <gsl/gsl_vector.h>
#include <gsl/gsl_vector_double.h>
#include <iostream>
#include <sys/types.h>
#include <tbb/parallel_for.h>
#include <algorithm>
#include <iterator>
#include <mutex>

Go to the source code of this file.

Namespaces

namespace  DiFfRG
 
namespace  DiFfRG::internal
 

Functions

template<int dim>
int DiFfRG::internal::gsl_unwrap (const gsl_vector *gsl_x, void *params, gsl_vector *gsl_f)
 
template<int dim, typename Cell >
bool DiFfRG::internal::is_in_cell (const Cell &cell, const Point< dim > &point, const Mapping< dim > &mapping)
 
template<int dim>
dealii::Point< dim > DiFfRG::internal::get_origin (const dealii::DoFHandler< dim > &dof_handler, typename dealii::DoFHandler< dim >::cell_iterator &EoM_cell)
 
template<typename VectorType , typename EoMFUN , typename EoMPFUN >
dealii::Point< 1 > DiFfRG::get_EoM_point_1D (typename dealii::DoFHandler< 1 >::cell_iterator &EoM_cell, const VectorType &sol, const dealii::DoFHandler< 1 > &dof_handler, const dealii::Mapping< 1 > &mapping, const EoMFUN &get_EoM, const EoMPFUN &EoM_postprocess=[](const auto &p, const auto &values) { return p;}, const double EoM_abs_tol=1e-8, const uint max_iter=100)
 Get the EoM point for a given solution and model in 1D. This is done by first checking the origin, and then checking all cell borders in order to find a zero crossing. Then, the EoM point is found by bisection within the cell.
 
template<int dim, typename VectorType , typename EoMFUN , typename EoMPFUN >
dealii::Point< dim > DiFfRG::get_EoM_point_ND (typename dealii::DoFHandler< dim >::cell_iterator &EoM_cell, const VectorType &sol, const dealii::DoFHandler< dim > &dof_handler, const dealii::Mapping< dim > &mapping, const EoMFUN &get_EoM, const EoMPFUN &EoM_postprocess=[](const auto &p, const auto &values) { return p;}, const double EoM_abs_tol=1e-8, const uint max_iter=100)
 Get the EoM point for a given solution and model in 2D. This is done by first checking the origin, and then checking all cell borders in order to find a zero crossing. Then, the EoM point is found by bisection within the cell.
 
template<int dim, typename VectorType , typename EoMFUN , typename EoMPFUN >
dealii::Point< dim > DiFfRG::get_EoM_point (typename dealii::DoFHandler< dim >::cell_iterator &EoM_cell, const VectorType &sol, const dealii::DoFHandler< dim > &dof_handler, const dealii::Mapping< dim > &mapping, const EoMFUN &get_EoM, const EoMPFUN &EoM_postprocess=[](const auto &p, const auto &values) { return p;}, const double EoM_abs_tol=1e-5, const uint max_iter=100)
 Get the EoM point for a given solution and model.