11#ifndef QUGAR_IMPL_PRIMITIVE_FUNCS_LIB_HPP
12#define QUGAR_IMPL_PRIMITIVE_FUNCS_LIB_HPP
223 [[nodiscard]]
static std::shared_ptr<MonomialsTP<3, 1>>
440 [[nodiscard]]
static std::shared_ptr<MonomialsTP<2, 1>>
574 [[nodiscard]]
static std::shared_ptr<MonomialsTP<3, 1>>
Declaration of tensor-product Bezier class.
dim-dimensional tensor-product Bezier polynomial function.
Definition monomials_tp.hpp:34
Domain functions.
Definition domain_function.hpp:41
A class representing a reference system in a given dimension.
Definition ref_system.hpp:35
2D annulus base class. The function is defined by the annulus center and major and inner radii....
Definition primitive_funcs_lib.hpp:373
real outer_radius() const
Gets the outer radius of the annulus.
real inner_radius_
Inner radius of the annulus.
Definition primitive_funcs_lib.hpp:396
real outer_radius_
Outer radius of the annulus.
Definition primitive_funcs_lib.hpp:399
static Point< 2 > get_default_center()
Gets the default center of the cylinder. It is set to the center of the Cartesian coordinate system.
const Point< 2 > & center() const
Gets the center of the annulus.
Point< 2 > center_
Center of the annulus.
Definition primitive_funcs_lib.hpp:402
real inner_radius() const
Gets the inner radius of the annulus.
AnnulusBase(real inner_radius, real outer_radius, const Point< 2 > ¢er)
Constructor.
2D annulus function. The function is defined by the annulus center and outer and inner radii....
Definition primitive_funcs_lib.hpp:417
AnnulusBzr(real inner_radius, real outer_radius, const Point< 2 > ¢er)
Constructor.
AnnulusBzr(real inner_radius, real outer_radius)
Constructor.
static std::shared_ptr< MonomialsTP< 2, 1 > > create_monomials(real inner_radius, real outer_radius, const Point< 2 > ¢er)
Creates a polynomial representation based on monomials for the given radii and center.
2D annulus function. The function is defined by the annulus center and outer and inner radii....
Definition primitive_funcs_lib.hpp:453
Annulus(real inner_radius, real outer_radius)
Constructor.
Annulus(real inner_radius, real outer_radius, const Point< 2 > ¢er)
Constructor.
declare_impl_func_virtual_interface_2D
Definition primitive_funcs_lib.hpp:470
Dimension independent constant function.
Definition primitive_funcs_lib.hpp:634
real value_
Constant value.
Definition primitive_funcs_lib.hpp:649
real value() const
Gets the constant value.
static constexpr real default_value
Definition primitive_funcs_lib.hpp:636
ConstantBase(real value)
Constructor.
Dimension independent constant function.
Definition primitive_funcs_lib.hpp:659
ConstantBzr()
Default constructor. Sets constant value to 0.5.
ConstantBzr(real value)
Constructor.
Dimension independent constant function.
Definition primitive_funcs_lib.hpp:677
Constant()
Default constructor. Sets constant value to 0.5.
declare_impl_func_virtual_interface
Definition primitive_funcs_lib.hpp:687
Constant(real value)
Constructor.
Infinite cylinder base class.
Definition primitive_funcs_lib.hpp:143
static Point< 3 > get_default_axis()
Gets the default axis of the cylinder. It is set to the z-axis of the Cartesian coordinate system.
const Point< 3 > & axis() const
Gets the axis of the cylinder.
real radius() const
Gets the radius of the cylinder.
CylinderBase(real radius, const Point< 3 > &origin, const Point< 3 > &axis)
Constructor.
Point< 3 > origin_
Origin of the cylinder.
Definition primitive_funcs_lib.hpp:178
const Point< 3 > & origin() const
Gets the origin of the cylinder.
real radius_
Radius of the cylinder.
Definition primitive_funcs_lib.hpp:175
static Point< 3 > get_default_origin()
Gets the default origin of the cylinder. It is set to the origin of the Cartesian coordinate system.
Point< 3 > axis_
Axis of the axis.
Definition primitive_funcs_lib.hpp:181
Infinite cylinder.
Definition primitive_funcs_lib.hpp:196
CylinderBzr(real radius, const Point< 3 > &origin)
Constructor.
static std::shared_ptr< MonomialsTP< 3, 1 > > create_monomials(real radius, const Point< 3 > &origin, const Point< 3 > &axis)
Creates a polynomial representation based on monomials for the given center, radius,...
CylinderBzr(real radius)
Constructor.
CylinderBzr(real radius, const Point< 3 > &origin, const Point< 3 > &axis)
Constructor.
Infinite cylinder.
Definition primitive_funcs_lib.hpp:240
Cylinder(real radius)
Constructor.
static const int dim
Definition primitive_funcs_lib.hpp:242
declare_impl_func_virtual_interface
Definition primitive_funcs_lib.hpp:264
Cylinder(real radius, const Point< 3 > &origin, const Point< 3 > &axis)
Constructor.
Cylinder(real radius, const Point< 3 > &origin)
Constructor.
Dimension independent ellipsoidal function (base cass). The function is defined by the ellipsoid's se...
Definition primitive_funcs_lib.hpp:276
RefSystem< dim > system_
Ellipsoid's reference system.
Definition primitive_funcs_lib.hpp:297
const Point< dim > & semi_axes() const
Gets the semi-axes of the ellipsoid.
EllipsoidBase(const Point< dim > &semi_axes, const RefSystem< dim > &system)
Constructs an Ellipsoid object with specified semi-axes and reference system.
static RefSystem< dim > get_default_system()
Gets the default reference system of the ellipsoid.
Point< dim > semi_axes_
Ellipsoid's semi-axes.
Definition primitive_funcs_lib.hpp:294
const RefSystem< dim > & ref_system() const
Gets the reference system of the ellipsoid.
Dimension independent ellipsoidal function. The function is defined by the ellipsoid's semi-axes and ...
Definition primitive_funcs_lib.hpp:317
EllipsoidBzr(const Point< dim > &semi_axes, const RefSystem< dim > &system)
Constructs an Ellipsoid object with specified semi-axes and reference system.
EllipsoidBzr(const Point< dim > &semi_axes)
Constructor.
static std::shared_ptr< MonomialsTP< dim, 1 > > create_monomials(const Point< dim > &semi_axes, const RefSystem< dim > &system)
Creates a polynomial representation based on monomials for the given semi-axes and reference system.
Dimension independent ellipsoidal function. The function is defined by the ellipsoid's semi-axes and ...
Definition primitive_funcs_lib.hpp:352
Ellipsoid(const Point< dim > &semi_axes)
Constructor.
Ellipsoid(const Point< dim > &semi_axes, const RefSystem< dim > &system)
Constructs an Ellipsoid object with specified semi-axes and reference system.
declare_impl_func_virtual_interface
Definition primitive_funcs_lib.hpp:365
Plane base class.
Definition primitive_funcs_lib.hpp:696
static Point< dim > get_default_origin()
Gets the default origin of the plane. It is set to the origin of the Cartesian coordinate system.
Point< dim > origin_
Origin of the (levelset) line.
Definition primitive_funcs_lib.hpp:712
const Point< dim > & normal() const
Gets the normal of the plane.
const Point< dim > & origin() const
Gets the origin of the plane.
static Point< dim > get_default_normal()
Gets the default normal vector of the plane. It is set to the x-axis.
PlaneBase(const Point< dim > &origin, const Point< dim > &normal)
Constructs a new plane function. The line is defined by an origin and a normal vector.
Point< dim > normal_
Normal to the (levelset) line.
Definition primitive_funcs_lib.hpp:715
Plane function.
Definition primitive_funcs_lib.hpp:738
static std::shared_ptr< MonomialsTP< dim, 1 > > create_monomials(const Point< dim > &origin, const Point< dim > &normal)
Creates a polynomial representation based on monomials for the given origin a normal.
PlaneBzr()
Constructs a new plane function. The line (levelset) is the line x=0.
PlaneBzr(const Point< dim > &origin, const Point< dim > &normal)
Constructs a new plane function. The line is defined by an origin and a normal vector.
Plane function.
Definition primitive_funcs_lib.hpp:766
Plane(const Point< dim > &origin, const Point< dim > &normal)
Constructs a new plane function. The line is defined by an origin and a normal vector.
declare_impl_func_virtual_interface
Definition primitive_funcs_lib.hpp:775
Plane()
Constructs a new plane function. The line (levelset) is the line x=0.
Dimension independent spherical function.
Definition primitive_funcs_lib.hpp:41
Point< dim > center_
Center of the sphere.
Definition primitive_funcs_lib.hpp:66
SphereBase(real radius, const Point< dim > ¢er)
Constructs a Sphere object with a specified center and radius.
real radius() const
Gets the radius of the sphere.
static Point< dim > get_default_center()
Gets the default center of the sphere. It is set to the origin of the Cartesian coordinate system.
real radius_
Radius of the sphere.
Definition primitive_funcs_lib.hpp:63
const Point< dim > & center() const
Gets the center of the sphere.
Dimension independent spherical function. The function is defined by its center and radius....
Definition primitive_funcs_lib.hpp:113
static std::shared_ptr< MonomialsTP< dim, 1 > > create_monomials(real radius, const Point< dim > ¢er)
Creates a polynomial representation based on monomials for the given center and radius.
SphereBzr(real radius)
Constructs a Sphere with the given radius and centered at the origin.
SphereBzr(real radius, const Point< dim > ¢er)
Constructs a Sphere object with a specified center and radius.
Dimension independent spherical function. The function is defined by its center and radius....
Definition primitive_funcs_lib.hpp:83
declare_impl_func_virtual_interface
Definition primitive_funcs_lib.hpp:96
Sphere(real radius, const Point< dim > ¢er)
Constructs a Sphere object with a specified center and radius.
Sphere(real radius)
Constructs a Sphere with the given radius and centered at the origin.
3D torus function base class. The function is defined by the torus center, axis, and major and inner ...
Definition primitive_funcs_lib.hpp:480
real major_radius() const
Gets the major radius of the torus.
const Point< 3 > & center() const
Gets the center of the plane.
TorusBase(real major_radius, real minor_radius, const Point< 3 > ¢er, const Point< 3 > &axis)
Constructor.
Point< 3 > axis_
Axis of the torus.
Definition primitive_funcs_lib.hpp:517
static Point< 3 > get_default_center()
Gets the default center of the torus. It is set to the center of the Cartesian coordinate system.
real minor_radius() const
Gets the minor radius of the torus.
const Point< 3 > & axis() const
Gets the axis of the plane.
static Point< 3 > get_default_axis()
Gets the default axis of the torus. It is set to the z-axis of the Cartesian coordinate system.
real major_radius_
Major radius of the torus.
Definition primitive_funcs_lib.hpp:508
real minor_radius_
Minor radius of the torus.
Definition primitive_funcs_lib.hpp:511
Point< 3 > center_
Center of the torus.
Definition primitive_funcs_lib.hpp:514
3D torus function. The function is defined by the torus center, axis, and major and inner radii....
Definition primitive_funcs_lib.hpp:539
TorusBzr(real major_radius, real minor_radius)
Constructor.
static std::shared_ptr< MonomialsTP< 3, 1 > > create_monomials(real major_radius, real minor_radius, const Point< 3 > ¢er, const Point< 3 > &axis)
Creates a polynomial representation based on monomials for the given radii, center,...
TorusBzr(real major_radius, real minor_radius, const Point< 3 > ¢er, const Point< 3 > &axis)
Constructor.
TorusBzr(real major_radius, real minor_radius, const Point< 3 > ¢er)
Constructor.
3D torus function. The function is defined by the torus center, axis, and major and inner radii....
Definition primitive_funcs_lib.hpp:588
Torus(real major_radius, real minor_radius, const Point< 3 > ¢er, const Point< 3 > &axis)
Constructor.
declare_impl_func_virtual_interface_3D
Definition primitive_funcs_lib.hpp:616
Torus(real major_radius, real minor_radius)
Constructor.
Point< 3, T > compute_P_x_0(const Point< 3, T > &point) const
Computes the normal component of the a vector respect to the origin.
Torus(real major_radius, real minor_radius, const Point< 3 > ¢er)
Constructor.
Declaration of a few implicit functions template class ready to be consumed by Algoim.
Declaration of macros to ease the definition/implementation of implicit functions.
Declaration of tensor-product monomials class.
Definition impl_funcs_lib.hpp:36
constexpr real half
Real one over two value.
Definition numbers.hpp:40
double real
Definition types.hpp:18
Vector< T, dim > Point
Class representing a dim-dimensional Point.
Definition point.hpp:34
Declaration of constant values.
Definition and implementation of Point class.
Declaration of reference system class.