operator.h File Reference
#include <cassert>
#include <cmath>
#include <array>
#include <vector>
#include <stdexcept>
#include "portage/support/basis.h"
#include "wonton/support/Point.h"

Go to the source code of this file.

Classes

class  Portage::Meshfree::oper::DomainTraits< domain >
 
class  Portage::Meshfree::oper::DomainTraits< Interval >
 
class  Portage::Meshfree::oper::DomainTraits< Quadrilateral >
 
class  Portage::Meshfree::oper::DomainTraits< Triangle >
 
class  Portage::Meshfree::oper::DomainTraits< Circle >
 
class  Portage::Meshfree::oper::DomainTraits< Hexahedron >
 
class  Portage::Meshfree::oper::DomainTraits< Tetrahedron >
 
class  Portage::Meshfree::oper::DomainTraits< Wedge >
 
class  Portage::Meshfree::oper::DomainTraits< Sphere >
 
class  Portage::Meshfree::oper::OperatorBase< type, basis_type, domain_type >
 
class  Portage::Meshfree::oper::Operator< type, basis_type, domain_type >
 
class  Portage::Meshfree::oper::Operator< VolumeIntegral, basis::Unitary, Interval >
 
class  Portage::Meshfree::oper::Operator< VolumeIntegral, basis::Linear, Interval >
 
class  Portage::Meshfree::oper::Operator< VolumeIntegral, basis::Quadratic, Interval >
 
class  Portage::Meshfree::oper::Operator< VolumeIntegral, basis::Unitary, Triangle >
 
class  Portage::Meshfree::oper::Operator< VolumeIntegral, basis::Linear, Triangle >
 
class  Portage::Meshfree::oper::Operator< VolumeIntegral, basis::Quadratic, Triangle >
 
class  Portage::Meshfree::oper::Operator< VolumeIntegral, basis::Unitary, Quadrilateral >
 
class  Portage::Meshfree::oper::Operator< VolumeIntegral, basis::Linear, Quadrilateral >
 
class  Portage::Meshfree::oper::Operator< VolumeIntegral, basis::Quadratic, Quadrilateral >
 
class  Portage::Meshfree::oper::Operator< VolumeIntegral, basis::Unitary, Hexahedron >
 
class  Portage::Meshfree::oper::Operator< VolumeIntegral, basis::Linear, Hexahedron >
 
class  Portage::Meshfree::oper::Operator< VolumeIntegral, basis::Unitary, Wedge >
 
class  Portage::Meshfree::oper::Operator< VolumeIntegral, basis::Linear, Wedge >
 
class  Portage::Meshfree::oper::Operator< VolumeIntegral, basis::Unitary, Tetrahedron >
 
class  Portage::Meshfree::oper::Operator< VolumeIntegral, basis::Linear, Tetrahedron >
 
class  Portage::Meshfree::oper::Operator< VolumeIntegral, basis::Quadratic, Tetrahedron >
 

Namespaces

 Portage
 
 Portage::Meshfree
 
 Portage::Meshfree::oper
 

Enumerations

enum  Portage::Meshfree::oper::Domain {
  Portage::Meshfree::oper::Interval, Portage::Meshfree::oper::Quadrilateral, Portage::Meshfree::oper::Triangle, Portage::Meshfree::oper::Circle,
  Portage::Meshfree::oper::Hexahedron, Portage::Meshfree::oper::Tetrahedron, Portage::Meshfree::oper::Wedge, Portage::Meshfree::oper::Sphere,
  Portage::Meshfree::oper::LastDomain
}
 
enum  Portage::Meshfree::oper::Type { Portage::Meshfree::oper::VolumeIntegral, Portage::Meshfree::oper::SurfaceIntegral, Portage::Meshfree::oper::LastOperator }
 

Functions

constexpr size_t Portage::Meshfree::oper::dimension (Domain domain)
 
template<int dim>
Domain Portage::Meshfree::oper::domain_from_points (std::vector< Wonton::Point< dim >> const &points)
 
std::array< size_t, 3 > Portage::Meshfree::oper::size_info (Type type, basis::Type basis, Domain domain)
 
template<class OP >
void Portage::Meshfree::oper::copy_points (const std::vector< Wonton::Point< OP::dim >> &points, typename OP::points_t &apts)
 
template<class OP >
Wonton::Point< OP::dim > Portage::Meshfree::oper::centroid (const typename OP::points_t &apts)
 
template<class OP >
void Portage::Meshfree::oper::shift_points (const Wonton::Point< OP::dim > c, typename OP::points_t &apts)
 
template<class OP >
void Portage::Meshfree::oper::resize_result (std::vector< std::vector< double >> &result)
 
template<class OP >
void Portage::Meshfree::oper::copy_result (const typename OP::result_t &ares, std::vector< std::vector< double >> &result)
 
template<class OP >
void Portage::Meshfree::oper::get_result (const std::vector< Wonton::Point< OP::dim >> &points, std::vector< std::vector< double >> &result, const bool center=true)
 
template<class OP >
std::vector< std::vector< double > > Portage::Meshfree::oper::get_result (const std::vector< Wonton::Point< OP::dim >> &points, bool center=true)
 
template<size_t dim>
void Portage::Meshfree::oper::apply (const Type type, const basis::Type basis_type, const Domain domain_type, const std::vector< Wonton::Point< dim >> &points, std::vector< std::vector< double >> &result)
 
template<>
void Portage::Meshfree::oper::apply< 1 > (const Type type, const basis::Type basis_type, const Domain domain_type, const std::vector< Wonton::Point< 1 >> &points, std::vector< std::vector< double >> &result)
 
template<>
void Portage::Meshfree::oper::apply< 2 > (const Type type, const basis::Type basis_type, const Domain domain_type, const std::vector< Wonton::Point< 2 >> &points, std::vector< std::vector< double >> &result)
 
template<>
void Portage::Meshfree::oper::apply< 3 > (const Type type, const basis::Type basis_type, const Domain domain_type, const std::vector< Wonton::Point< 3 >> &points, std::vector< std::vector< double >> &result)