Reference documentation for deal.II version 9.0.0
|
#include <deal.II/opencascade/boundary_lib.h>
Public Member Functions | |
ArclengthProjectionLineManifold (const TopoDS_Shape &sh, const double tolerance=1e-7) | |
virtual std::unique_ptr< Manifold< dim, spacedim > > | clone () const override |
virtual Point< 1 > | pull_back (const Point< spacedim > &space_point) const override |
virtual Point< spacedim > | push_forward (const Point< 1 > &chart_point) const override |
Public Member Functions inherited from ChartManifold< dim, spacedim, 1 > | |
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 ()=default |
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 () |
Subscriptor & | operator= (const Subscriptor &) |
Subscriptor & | operator= (Subscriptor &&) noexcept |
void | subscribe (const char *identifier=nullptr) const |
void | unsubscribe (const char *identifier=nullptr) const |
unsigned int | n_subscriptions () const |
void | list_subscribers () const |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int version) |
Private Attributes | |
const TopoDS_Shape | sh |
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 ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
A Manifold 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.
Definition at line 291 of file boundary_lib.h.
OpenCASCADE::ArclengthProjectionLineManifold< dim, spacedim >::ArclengthProjectionLineManifold | ( | const TopoDS_Shape & | sh, |
const double | tolerance = 1e-7 |
||
) |
Default constructor with a TopoDS_Edge.
Definition at line 286 of file boundary_lib.cc.
|
overridevirtual |
Clone the current Manifold.
Implements Manifold< dim, spacedim >.
Definition at line 304 of file boundary_lib.cc.
|
overridevirtual |
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 314 of file boundary_lib.cc.
|
overridevirtual |
Given an arclength parameter, find its image in real space.
Definition at line 329 of file boundary_lib.cc.
|
private |
The actual shape used to build this object.
Definition at line 323 of file boundary_lib.h.
|
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 329 of file boundary_lib.h.
|
private |
Relative tolerance used in all internal computations.
Definition at line 334 of file boundary_lib.h.
|
private |
The total length of the curve. This is also used as a period if the edge is periodic.
Definition at line 340 of file boundary_lib.h.