weight.h File Reference
#include <cmath>
#include <array>
#include <cassert>
#include <limits>
#include <vector>
#include "portage/support/portage.h"
#include "wonton/support/Point.h"

Go to the source code of this file.

Classes

struct  Portage::Meshfree::Weight::FacetData< dim >
 data for specifying a faceted weight. More...
 

Namespaces

 Portage
 
 Portage::Meshfree
 
 Portage::Meshfree::Weight
 

Enumerations

enum  Portage::Meshfree::Weight::Kernel {
  Portage::Meshfree::Weight::B4, Portage::Meshfree::Weight::SQUARE, Portage::Meshfree::Weight::EPANECHNIKOV, Portage::Meshfree::Weight::POLYRAMP,
  Portage::Meshfree::Weight::INVSQRT, Portage::Meshfree::Weight::COULOMB, Portage::Meshfree::Weight::STEP
}
 Kernel types. More...
 
enum  Portage::Meshfree::Weight::Geometry { Portage::Meshfree::Weight::ELLIPTIC, Portage::Meshfree::Weight::TENSOR, Portage::Meshfree::Weight::FACETED }
 Geometry types. More...
 

Functions

double Portage::Meshfree::Weight::sign (double x)
 scalar sign function. More...
 
double Portage::Meshfree::Weight::unit_step (double x)
 scalar step function More...
 
double Portage::Meshfree::Weight::b4 (double x)
 scalar cubic b-spline. More...
 
double Portage::Meshfree::Weight::db4 (double x)
 scalar cubic b-spline derivative. More...
 
double Portage::Meshfree::Weight::ddb4 (double x)
 scalar cubic b-spline second derivative. More...
 
double Portage::Meshfree::Weight::ib4 (double x)
 scalar cubic b-spline anti-derivative. More...
 
double Portage::Meshfree::Weight::b4lh (double x)
 scalar left half cubic b-spline. More...
 
double Portage::Meshfree::Weight::b4rh (double x)
 scalar right half cubic b-spline. More...
 
double Portage::Meshfree::Weight::epanechnikov (double x)
 scalar epanechnikov kernel. More...
 
double Portage::Meshfree::Weight::depanechnikov (double x)
 scalar epanechnikov kernel derivative. More...
 
double Portage::Meshfree::Weight::ddepanechnikov (double x)
 scalar epanechnikov kernel second derivative. More...
 
double Portage::Meshfree::Weight::square (double x)
 scalar square kernel. More...
 
double Portage::Meshfree::Weight::dsquare (double x)
 scalar square kernel derivative. More...
 
double Portage::Meshfree::Weight::ddsquare (double x)
 scalar square kernel second derivative. More...
 
double Portage::Meshfree::Weight::polyramp (double x)
 scalar smooth ramp for faceted weight. More...
 
double Portage::Meshfree::Weight::dpolyramp (double x)
 scalar smooth ramp for faceted weight derivative. More...
 
double Portage::Meshfree::Weight::ddpolyramp (double x)
 scalar smooth ramp for faceted weight derivative. More...
 
double Portage::Meshfree::Weight::invsqrt (double x)
 inverse square root kernel. More...
 
double Portage::Meshfree::Weight::dinvsqrt (double x)
 derivative of inverse square root kernel. More...
 
double Portage::Meshfree::Weight::ddinvsqrt (double x)
 second derivative of inverse square root kernel. More...
 
double Portage::Meshfree::Weight::coulomb (double x)
 coulomb weight. More...
 
double Portage::Meshfree::Weight::dcoulomb (double x)
 coulomb weight derivative. More...
 
double Portage::Meshfree::Weight::ddcoulomb (double x)
 coulomb weight second derivative. More...
 
double Portage::Meshfree::Weight::step (double x)
 step weight. More...
 
double Portage::Meshfree::Weight::dstep (double x)
 step weight derivative. More...
 
double Portage::Meshfree::Weight::ddstep (double x)
 step weight second derivative. More...
 
double Portage::Meshfree::Weight::kernel (const Kernel kern, double x)
 General kernel function. More...
 
template<int dim>
double Portage::Meshfree::Weight::elliptic (Wonton::Point< dim > const &x, Wonton::Point< dim > const &y, std::array< double, dim > const &h)
 generic elliptically symmetric weight function argument. More...
 
template<int dim>
std::array< double, dim > Portage::Meshfree::Weight::tensor (Wonton::Point< dim > const &x, Wonton::Point< dim > const &y, std::array< double, dim > const &h)
 generic tensor weight function arguments. More...
 
template<int dim>
double Portage::Meshfree::Weight::eval (Geometry const geometry, Kernel const kern, Wonton::Point< dim > const &x, Wonton::Point< dim > const &y, std::array< double, dim > const &h)
 evaluation function for elliptic or tensor product weights. More...
 
template<int dim>
double Portage::Meshfree::Weight::faceted (Kernel const kern, Wonton::Point< dim > const &x, Wonton::Point< dim > const &y, std::vector< FacetData< dim >> const &facets, size_t nsides)
 faceted weight function More...
 
template<int dim>
double Portage::Meshfree::Weight::eval (Geometry const geo, Kernel const kern, Wonton::Point< dim > const &x, Wonton::Point< dim > const &y, std::vector< std::vector< double >> const &vh)
 evaluation function for any weight. More...
 

Variables

double const Portage::Meshfree::Weight::normconst [4] = { 2./3., 1./(.7 * M_PI), 1./M_PI, 1./M_PI }
 normalization constants for cubic B-spline (linear, cylindrical, and spherical). More...
 
double const Portage::Meshfree::Weight::epsilon = std::numeric_limits<double>::epsilon()
 Numerical tolerance. More...