17 #ifndef dealii_occ_manifold_lib_h
18 #define dealii_occ_manifold_lib_h
22 #ifdef DEAL_II_WITH_OPENCASCADE
29 # define HAVE_CONFIG_H
30 # include <Adaptor3d_Curve.hxx>
31 # if !DEAL_II_OPENCASCADE_VERSION_GTE(7, 6, 0)
32 # include <Adaptor3d_HCurve.hxx>
34 # include <BRepAdaptor_Curve.hxx>
65 template <
int dim,
int spacedim>
82 virtual std::unique_ptr<Manifold<dim, spacedim>>
83 clone()
const override;
107 const TopoDS_Shape
sh;
134 template <
int dim,
int spacedim>
149 virtual std::unique_ptr<Manifold<dim, spacedim>>
150 clone()
const override;
173 const TopoDS_Shape
sh;
229 template <
int dim,
int spacedim>
244 virtual std::unique_ptr<Manifold<dim, spacedim>>
245 clone()
const override;
265 const TopoDS_Shape
sh;
290 template <
int dim,
int spacedim>
303 virtual std::unique_ptr<Manifold<dim, spacedim>>
304 clone()
const override;
324 const TopoDS_Shape
sh;
330 # if DEAL_II_OPENCASCADE_VERSION_GTE(7, 6, 0)
333 Handle_Adaptor3d_HCurve
curve;
353 template <
int dim,
int spacedim>
367 virtual std::unique_ptr<Manifold<dim, spacedim>>
368 clone()
const override;
404 std::tuple<double, double, double, double>
Handle_Adaptor3d_Curve curve
virtual std::unique_ptr< Manifold< dim, spacedim > > clone() const override
virtual Point< spacedim > push_forward(const Point< 1 > &chart_point) const override
ArclengthProjectionLineManifold(const TopoDS_Shape &sh, const double tolerance=1e-7)
virtual Point< 1 > pull_back(const Point< spacedim > &space_point) const override
virtual Point< spacedim > project_to_manifold(const ArrayView< const Point< spacedim >> &surrounding_points, const Point< spacedim > &candidate) const override
DirectionalProjectionManifold(const TopoDS_Shape &sh, const Tensor< 1, spacedim > &direction, const double tolerance=1e-7)
const Tensor< 1, spacedim > direction
virtual std::unique_ptr< Manifold< dim, spacedim > > clone() const override
virtual std::unique_ptr< Manifold< dim, spacedim > > clone() const override
std::tuple< double, double, double, double > get_uv_bounds() const
virtual Point< 2 > pull_back(const Point< spacedim > &space_point) const override
virtual Point< spacedim > push_forward(const Point< 2 > &chart_point) const override
NURBSPatchManifold(const TopoDS_Face &face, const double tolerance=1e-7)
virtual DerivativeForm< 1, 2, spacedim > push_forward_gradient(const Point< 2 > &chart_point) const override
virtual std::unique_ptr< Manifold< dim, spacedim > > clone() const override
virtual Point< spacedim > project_to_manifold(const ArrayView< const Point< spacedim >> &surrounding_points, const Point< spacedim > &candidate) const override
NormalProjectionManifold(const TopoDS_Shape &sh, const double tolerance=1e-7)
virtual Point< spacedim > project_to_manifold(const ArrayView< const Point< spacedim >> &surrounding_points, const Point< spacedim > &candidate) const override
virtual std::unique_ptr< Manifold< dim, spacedim > > clone() const override
NormalToMeshProjectionManifold(const TopoDS_Shape &sh, const double tolerance=1e-7)
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
SymmetricTensor< 2, dim, Number > e(const Tensor< 2, dim, Number > &F)