VM2D 1.14
Vortex methods for 2D flows simulation
Loading...
Searching...
No Matches
utils.h File Reference
#include "defs.h"
#include <complex>
#include <array>
#include <vector>
#include <cassert>
#include "omp.h"
Include dependency graph for utils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  fmm::particle< point, value >
 
class  fmm::Vector3< T >
 
struct  fmm::treevector< T >
 

Namespaces

namespace  fmm
 

Typedefs

using fmm::Vector3d = Vector3< double >
 
using fmm::Matrix3d = std::array< Vector3d, 3 >
 
using fmm::Vector3cd = Vector3< std::complex< double > >
 
using fmm::point2d = std::complex< double >
 
using fmm::point3d = Vector3d
 
using fmm::particle2d = particle< point2d, double >
 
using fmm::particle3d = particle< point3d, double >
 
using fmm::particle3d3 = particle< point3d, point3d >
 

Enumerations

enum class  fmm::InteractionType {
  fmm::Potential2d , fmm::Force2d , fmm::Potential3d , fmm::Force3d ,
  fmm::VelDipole3d , fmm::MomDipole3d
}
 

Functions

template<typename T >
constexpr Vector3< T > fmm::operator* (const double x, const Vector3< T > &rhs)
 
constexpr Vector3cd fmm::operator* (const std::complex< double > &x, const Vector3d &rhs)
 
constexpr Vector3cd fmm::operator* (const Vector3d &rhs, const std::complex< double > &x)
 
constexpr Vector3cd fmm::operator* (const std::complex< double > &x, const Vector3cd &rhs)
 
constexpr Vector3cd fmm::operator* (const Vector3cd &rhs, const std::complex< double > &x)
 
void fmm::operator*= (Vector3cd &lhs, const std::complex< double > &x)
 
void fmm::operator+= (Vector3cd &lhs, const Vector3d &rhs)
 
template<typename complex >
constexpr Vector3d fmm::real (const Vector3cd &rhs)
 
template<typename complex >
constexpr Vector3d fmm::imag (const Vector3cd &rhs)
 
template<typename T >
constexpr Vector3< T > fmm::cross (const Vector3< T > &lhs, const Vector3< T > &rhs)
 
constexpr double fmm::dot (const Vector3d &lhs, const Vector3d &rhs)
 
template<typename T >
std::ostream & fmm::operator<< (std::ostream &os, const Vector3< T > &rhs)
 
template<typename T >
std::istream & fmm::operator>> (std::istream &is, Vector3< T > &rhs)
 
template<typename T >
double fmm::norm (const Vector3< T > &vec)
 
template<typename T >
double fmm::abs (const Vector3< T > &vec)
 
int fmm::doublehash (double val)
 
int fmm::doublehash (double val1, double val2)