Reference documentation for deal.II version Git df0d004539 2020-05-25 12:18:57 +0200
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
OpenCASCADE::NURBSPatchManifold< dim, spacedim > Class Template Reference

#include <deal.II/opencascade/manifold_lib.h>

Inheritance diagram for OpenCASCADE::NURBSPatchManifold< dim, spacedim >:
[legend]

Public Member Functions

 NURBSPatchManifold (const TopoDS_Face &face, const double tolerance=1e-7)
 
virtual std::unique_ptr< Manifold< dim, spacedim > > clone () const override
 
virtual Point< 2 > pull_back (const Point< spacedim > &space_point) const override
 
virtual Point< spacedim > push_forward (const Point< 2 > &chart_point) const override
 
virtual DerivativeForm< 1, 2, spacedim > push_forward_gradient (const Point< 2 > &chart_point) const override
 
- Public Member Functions inherited from ChartManifold< dim, spacedim, 2 >
 ChartManifold (const Tensor< 1, chartdim > &periodicity=Tensor< 1, chartdim >())
 
virtual ~ChartManifold () override=default
 
virtual Point< spacedim > get_intermediate_point (const Point< spacedim > &p1, const Point< spacedim > &p2, const double w) const override
 
virtual Point< spacedim > get_new_point (const ArrayView< const Point< spacedim >> &surrounding_points, const ArrayView< const double > &weights) const override
 
virtual void get_new_points (const ArrayView< const Point< spacedim >> &surrounding_points, const Table< 2, double > &weights, ArrayView< Point< spacedim >> new_points) const override
 
virtual Point< spacedim > push_forward (const Point< chartdim > &chart_point) const=0
 
virtual DerivativeForm< 1, chartdim, spacedim > push_forward_gradient (const Point< chartdim > &chart_point) const
 
virtual Tensor< 1, spacedim > get_tangent_vector (const Point< spacedim > &x1, const Point< spacedim > &x2) const override
 
const Tensor< 1, chartdim > & get_periodicity () const
 
- Public Member Functions inherited from Manifold< dim, spacedim >
virtual ~Manifold () override=default
 
template<>
Tensor< 1, 2 > normal_vector (const Triangulation< 2, 2 >::face_iterator &face, const Point< 2 > &p) const
 
template<>
Tensor< 1, 3 > normal_vector (const Triangulation< 3, 3 >::face_iterator &face, const Point< 3 > &p) const
 
template<>
void get_normals_at_vertices (const Triangulation< 2, 2 >::face_iterator &face, FaceVertexNormals &n) const
 
template<>
void get_normals_at_vertices (const Triangulation< 3, 3 >::face_iterator &face, FaceVertexNormals &n) const
 
template<>
Point< 1 > get_new_point_on_face (const Triangulation< 1, 1 >::face_iterator &) const
 
template<>
Point< 2 > get_new_point_on_face (const Triangulation< 1, 2 >::face_iterator &) const
 
template<>
Point< 3 > get_new_point_on_face (const Triangulation< 1, 3 >::face_iterator &) const
 
template<>
Point< 1 > get_new_point_on_quad (const Triangulation< 1, 1 >::quad_iterator &) const
 
template<>
Point< 2 > get_new_point_on_quad (const Triangulation< 1, 2 >::quad_iterator &) const
 
template<>
Point< 3 > get_new_point_on_quad (const Triangulation< 1, 3 >::quad_iterator &) const
 
template<>
Point< 3 > get_new_point_on_hex (const Triangulation< 3, 3 >::hex_iterator &hex) const
 
virtual Point< spacedim > project_to_manifold (const ArrayView< const Point< spacedim >> &surrounding_points, const Point< spacedim > &candidate) const
 
virtual Point< spacedim > get_new_point_on_line (const typename Triangulation< dim, spacedim >::line_iterator &line) const
 
virtual Point< spacedim > get_new_point_on_quad (const typename Triangulation< dim, spacedim >::quad_iterator &quad) const
 
virtual Point< spacedim > get_new_point_on_hex (const typename Triangulation< dim, spacedim >::hex_iterator &hex) const
 
Point< spacedim > get_new_point_on_face (const typename Triangulation< dim, spacedim >::face_iterator &face) const
 
Point< spacedim > get_new_point_on_cell (const typename Triangulation< dim, spacedim >::cell_iterator &cell) const
 
virtual Tensor< 1, spacedim > normal_vector (const typename Triangulation< dim, spacedim >::face_iterator &face, const Point< spacedim > &p) const
 
virtual void get_normals_at_vertices (const typename Triangulation< dim, spacedim >::face_iterator &face, FaceVertexNormals &face_vertex_normals) const
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
 Subscriptor (Subscriptor &&) noexcept
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&) noexcept
 
void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
unsigned int n_subscriptions () const
 
template<typename StreamType >
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Protected Member Functions

std::tuple< double, double, double, doubleget_uv_bounds () const
 

Protected Attributes

TopoDS_Face face
 
double tolerance
 

Additional Inherited Members

- Public Types inherited from Manifold< dim, spacedim >
using FaceVertexNormals = std::array< Tensor< 1, spacedim >, GeometryInfo< dim >::vertices_per_face >
 
- Static Public Member Functions inherited from Subscriptor
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 

Detailed Description

template<int dim, int spacedim>
class OpenCASCADE::NURBSPatchManifold< dim, spacedim >

Manifold description for the face of a CAD imported using OpenCASCADE.

Author
Andrea Mola, Mauro Bardelloni, 2016

Definition at line 358 of file manifold_lib.h.

Constructor & Destructor Documentation

◆ NURBSPatchManifold()

template<int dim, int spacedim>
OpenCASCADE::NURBSPatchManifold< dim, spacedim >::NURBSPatchManifold ( const TopoDS_Face &  face,
const double  tolerance = 1e-7 
)

The constructor takes an OpenCASCADE TopoDS_Face face and an optional tolerance. This class uses the interval OpenCASCADE variables u, v to describe the manifold.

Definition at line 440 of file manifold_lib.cc.

Member Function Documentation

◆ clone()

template<int dim, int spacedim>
std::unique_ptr< Manifold< dim, spacedim > > OpenCASCADE::NURBSPatchManifold< dim, spacedim >::clone ( ) const
overridevirtual

Clone the current Manifold.

Implements Manifold< dim, spacedim >.

Definition at line 450 of file manifold_lib.cc.

◆ pull_back()

template<int dim, int spacedim>
Point< 2 > OpenCASCADE::NURBSPatchManifold< dim, spacedim >::pull_back ( const Point< spacedim > &  space_point) const
overridevirtual

Pull back the given point from the Euclidean space. Will return the uv coordinates associated with the point space_point.

Implements ChartManifold< dim, spacedim, 2 >.

Definition at line 460 of file manifold_lib.cc.

◆ push_forward()

template<int dim, int spacedim>
Point< spacedim > OpenCASCADE::NURBSPatchManifold< dim, spacedim >::push_forward ( const Point< 2 > &  chart_point) const
overridevirtual

Given a chart_point in the uv coordinate system, this method returns the Euclidean coordinates associated.

Definition at line 476 of file manifold_lib.cc.

◆ push_forward_gradient()

template<int dim, int spacedim>
DerivativeForm< 1, 2, spacedim > OpenCASCADE::NURBSPatchManifold< dim, spacedim >::push_forward_gradient ( const Point< 2 > &  chart_point) const
overridevirtual

Given a point in the spacedim dimensional Euclidean space, this method returns the derivatives of the function \(F\) that maps from the uv coordinate system to the Euclidean coordinate system. In other words, it is a matrix of size \(\text{spacedim}\times\text{chartdim}\).

This function is used in the computations required by the get_tangent_vector() function.

Refer to the general documentation of this class for more information.

Definition at line 486 of file manifold_lib.cc.

◆ get_uv_bounds()

template<int dim, int spacedim>
std::tuple< double, double, double, double > OpenCASCADE::NURBSPatchManifold< dim, spacedim >::get_uv_bounds ( ) const
protected

Return a tuple representing the minimum and maximum values of u and v. Precisely, it returns (u_min, u_max, v_min, v_max)

Definition at line 517 of file manifold_lib.cc.

Member Data Documentation

◆ face

template<int dim, int spacedim>
TopoDS_Face OpenCASCADE::NURBSPatchManifold< dim, spacedim >::face
protected

An OpenCASCADE TopoDS_Face face given by the CAD.

Definition at line 414 of file manifold_lib.h.

◆ tolerance

template<int dim, int spacedim>
double OpenCASCADE::NURBSPatchManifold< dim, spacedim >::tolerance
protected

Tolerance used by OpenCASCADE to identify points in each operation.

Definition at line 420 of file manifold_lib.h.


The documentation for this class was generated from the following files: