Reference documentation for deal.II version 8.5.1
Public Member Functions | Private Attributes | List of all members
OpenCASCADE::ArclengthProjectionLineManifold< dim, spacedim > Class Template Reference

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

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

Public Member Functions

 ArclengthProjectionLineManifold (const TopoDS_Shape &sh, const double tolerance=1e-7)
 
virtual Point< 1 > pull_back (const Point< spacedim > &space_point) const
 
virtual Point< spacedim > push_forward (const Point< 1 > &chart_point) const
 
- Public Member Functions inherited from ChartManifold< dim, spacedim, 1 >
 ChartManifold (const Tensor< 1, chartdim > &periodicity=Tensor< 1, chartdim >())
 
virtual ~ChartManifold ()
 
virtual Point< spacedim > get_new_point (const Quadrature< spacedim > &quad) const 1
 
virtual Point< spacedim > get_new_point (const std::vector< Point< spacedim > > &surrounding_points, const std::vector< double > &weights) const
 
virtual void add_new_points (const std::vector< Point< spacedim > > &surrounding_points, const Table< 2, double > &weights, std::vector< Point< spacedim > > &new_points) const
 
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
 
const Tensor< 1, chartdim > & get_periodicity () const
 
- Public Member Functions inherited from Manifold< dim, spacedim >
virtual ~Manifold ()
 
virtual Point< spacedim > get_intermediate_point (const Point< spacedim > &p1, const Point< spacedim > &p2, const double w) const
 
virtual Point< spacedim > project_to_manifold (const std::vector< 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 &&)
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&)
 
void subscribe (const char *identifier=0) const
 
void unsubscribe (const char *identifier=0) const
 
unsigned int n_subscriptions () const
 
void list_subscribers () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Private Attributes

Handle_Adaptor3d_HCurve curve
 
const double tolerance
 
const double length
 

Additional Inherited Members

- Public Types inherited from Manifold< dim, spacedim >
typedef Tensor< 1, spacedim > FaceVertexNormals[GeometryInfo< dim >::vertices_per_face]
 
- Static Public Member Functions inherited from Subscriptor
static ::ExceptionBaseExcInUse (int arg1, char *arg2, std::string &arg3)
 
static ::ExceptionBaseExcNoSubscriber (char *arg1, char *arg2)
 

Detailed Description

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

A Boundary object based on OpenCASCADE TopoDS_Shape objects which have topological dimension equal to one (TopoDS_Edge or TopoDS_Wire) where new points are located at the arclength average of the surrounding points. If the given TopoDS_Shape can be casted to a periodic (closed) curve, then this information is used internally to set the periodicity of the base ChartManifold class.

This class can only work on TopoDS_Edge or TopoDS_Wire objects, and it only makes sense when spacedim is three. If you use an object of topological dimension different from one, an exception is throw.

In debug mode there is an additional sanity check to make sure that the surrounding points actually live on the Manifold, i.e., calling OpenCASCADE::closest_point() on those points leaves them untouched. If this is not the case, an ExcPointNotOnManifold is thrown.

Author
Luca Heltai, Andrea Mola, 2011–2014.

Definition at line 282 of file boundary_lib.h.

Constructor & Destructor Documentation

◆ ArclengthProjectionLineManifold()

template<int dim, int spacedim>
OpenCASCADE::ArclengthProjectionLineManifold< dim, spacedim >::ArclengthProjectionLineManifold ( const TopoDS_Shape &  sh,
const double  tolerance = 1e-7 
)

Default constructor with a TopoDS_Edge.

Definition at line 242 of file boundary_lib.cc.

Member Function Documentation

◆ pull_back()

template<int dim, int spacedim>
Point< 1 > OpenCASCADE::ArclengthProjectionLineManifold< dim, spacedim >::pull_back ( const Point< spacedim > &  space_point) const
virtual

Given a point on real space, find its arclength parameter. Throws an error in debug mode, if the point is not on the TopoDS_Edge given at construction time.

Implements ChartManifold< dim, spacedim, 1 >.

Definition at line 258 of file boundary_lib.cc.

◆ push_forward()

template<int dim, int spacedim>
Point< spacedim > OpenCASCADE::ArclengthProjectionLineManifold< dim, spacedim >::push_forward ( const Point< 1 > &  chart_point) const
virtual

Given an arclength parameter, find its image in real space.

Definition at line 273 of file boundary_lib.cc.

Member Data Documentation

◆ curve

template<int dim, int spacedim>
Handle_Adaptor3d_HCurve OpenCASCADE::ArclengthProjectionLineManifold< dim, spacedim >::curve
private

A Curve adaptor. This is the one which is used in the computations, and it points to the right one above.

Definition at line 310 of file boundary_lib.h.

◆ tolerance

template<int dim, int spacedim>
const double OpenCASCADE::ArclengthProjectionLineManifold< dim, spacedim >::tolerance
private

Relative tolerance used in all internal computations.

Definition at line 315 of file boundary_lib.h.

◆ length

template<int dim, int spacedim>
const double OpenCASCADE::ArclengthProjectionLineManifold< dim, spacedim >::length
private

The total length of the curve. This is also used as a period if the edge is periodic.

Definition at line 321 of file boundary_lib.h.


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