VM2D 1.14
Vortex methods for 2D flows simulation
Loading...
Searching...
No Matches
simple_math.h File Reference
#include <oneapi/tbb/parallel_for.h>
#include <vector>
#include <complex>
#include <numbers>
#include <functional>
#include <fstream>
#include "mpi_utils.h"
#include <iostream>
Include dependency graph for simple_math.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  fmm::detail::BinomNewton_wrapper< n >
 
class  fmm::BinomNewton
 
struct  fmm::detail_interp::KernelTables
 

Namespaces

namespace  fmm
 
namespace  fmm::detail
 
namespace  fmm::detail_interp
 

Functions

template<typename T >
constexpr T fmm::MyPow (T base, unsigned int exp)
 
constexpr double fmm::ni (int n)
 
Vector3d fmm::DecToSph (const Vector3d &vec)
 
double fmm::Potential2d (const particle2d &p1, const particle2d &p2)
 
std::complex< double > fmm::Force2d (const particle2d &p1, const particle2d &p2)
 
double fmm::Potential3d (const particle3d &p1, const particle3d &p2)
 
Vector3d fmm::Force3d (const particle3d &p1, const particle3d &p2)
 
Vector3d fmm::Force3d (const particle3d3 &p1, const particle3d3 &p2)
 
const KernelTablesfmm::detail_interp::tables ()
 
std::pair< double, double > fmm::detail_interp::lookup2 (const double *tA, const double *tB, double xi)
 
template<typename T >
std::pair< T, T > fmm::lambdaEta (T xi)
 
template<>
std::pair< double, double > fmm::lambdaEta< double > (double xi)
 
template<typename T >
std::pair< T, T > fmm::lambdaEtaA (T xi)
 
template<>
std::pair< double, double > fmm::lambdaEtaA< double > (double xi)
 
Vector3d fmm::velDipole3d (const particle3d3 &p1, const particle3d3 &p2)
 
Vector3d fmm::momDipole3d (const particle3d3 &p1, const particle3d3 &p2)
 
void fmm::Potential3dMutual (const particle3d &p1, const particle3d &p2, double &potential1, double &potential2)
 
void fmm::Force3dMutual (const particle3d &p1, const particle3d &p2, Vector3d &force1, Vector3d &force2)
 
void fmm::Force3dMutual (const particle3d3 &p1, const particle3d3 &p2, Vector3d &force1, Vector3d &force2)
 
void fmm::Potential2dMutual (const particle2d &p1, const particle2d &p2, double &potential1, double &potential2)
 
void fmm::Force2dMutual (const particle2d &p1, const particle2d &p2, std::complex< double > &force1, std::complex< double > &force2)
 
template<typename point_type , typename interaction_type , typename value_type >
void fmm::ComputeExact (const std::vector< particle< point_type, value_type > > &source_particles, const std::vector< particle< point_type, value_type > > &target_particles, std::function< interaction_type(const particle< point_type, value_type > &, const particle< point_type, value_type > &)> func, std::string filename)
 
template<InteractionType it, typename point_type , typename value_type >
void fmm::ComputeExact (const std::vector< particle< point_type, value_type > > &source_particles, const std::vector< particle< point_type, value_type > > &target_particles)
 
template<InteractionType it, typename point_type , typename value_type >
void fmm::ComputeExact (const std::vector< particle< point_type, value_type > > &particles)
 
template<InteractionType it, typename T >
void fmm::ReadError (const std::vector< T > &res)
 
void fmm::ReadErrorHyb (const std::vector< std::array< double, 2 > > &res)
 

Variables

constexpr BinomNewton_wrapper< 2 *_2d_MAX_MULTIPOLE_NUMfmm::detail::binom
 
static constexpr int fmm::detail_interp::TABLE_SIZE = 2049
 
static constexpr double fmm::detail_interp::XI_MAX_INTERP = 5.0
 
static constexpr double fmm::detail_interp::INV_STEP = (TABLE_SIZE - 1) / XI_MAX_INTERP