KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
List of all members
Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType > Class Template Reference

#include <nurbs_curve_on_surface_geometry.h>

Inheritance diagram for Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >:
Collaboration diagram for Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >:

Public Member Functions

Life Cycle
 NurbsCurveOnSurfaceGeometry (typename NurbsSurfaceType::Pointer pSurface, typename NurbsCurveType::Pointer pCurve)
 Constructor. More...
 
 NurbsCurveOnSurfaceGeometry ()
 Default constructor. More...
 
 NurbsCurveOnSurfaceGeometry (NurbsCurveOnSurfaceGeometry const &rOther)
 Copy constructor. More...
 
template<class TOtherCurveContainerPointType , class TOtherSurfaceContainerPointType >
 NurbsCurveOnSurfaceGeometry (NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TOtherCurveContainerPointType, TOtherSurfaceContainerPointType > const &rOther)
 Copy constructor, with different point type. More...
 
 ~NurbsCurveOnSurfaceGeometry () override=default
 Destructor. More...
 
Operators
NurbsCurveOnSurfaceGeometryoperator= (const NurbsCurveOnSurfaceGeometry &rOther)
 Assignment operator. More...
 
template<class TOtherCurveContainerPointType , class TOtherSurfaceContainerPointType >
NurbsCurveOnSurfaceGeometryoperator= (NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TOtherCurveContainerPointType, TOtherSurfaceContainerPointType > const &rOther)
 Assignment operator for geometries with different point type. More...
 
Operations
BaseType::Pointer Create (TSurfaceContainerPointType const &ThisPoints) const override
 
Access to Geometry Parts
GeometryPointer pGetGeometryPart (const IndexType Index) override
 This function returns the pointer of the geometry which is corresponding to the trim index. Possible indices are: SURFACE_INDEX or EMBEDDED_CURVE_INDEX. More...
 
const GeometryPointer pGetGeometryPart (const IndexType Index) const override
 This function returns the pointer of the geometry which is corresponding to the trim index. Possible indices are: SURFACE_INDEX or EMBEDDED_CURVE_INDEX. More...
 
bool HasGeometryPart (const IndexType Index) const override
 This function is used to check if the index is GeometryType::BACKGROUND_GEOMETRY_INDEX. More...
 
Set / Calculate access
void Calculate (const Variable< array_1d< double, 3 >> &rVariable, array_1d< double, 3 > &rOutput) const override
 Calculate with array_1d<double, 3> More...
 
Mathematical Informations
SizeType PolynomialDegree (IndexType LocalDirectionIndex) const override
 Return polynomial degree of the curve. More...
 
Set/ Get functions

Returns the NurbsCurve::Pointer of this CurveOnSurface.

NurbsCurvePointerType pGetCurve ()
 
const NurbsCurvePointerType pGetCurve () const
 Returns the const NurbsCurveOnSurface::Pointer of this brep. More...
 
Curve Properties
SizeType PointsNumberInDirection (IndexType LocalDirectionIndex) const override
 Returns number of points of NurbsCurve. More...
 
void SpansLocalSpace (std::vector< double > &rSpans, IndexType DirectionIndex=0) const override
 
void SpansLocalSpace (std::vector< double > &rSpans, double Start, double End) const
 
NurbsInterval DomainInterval () const
 
Projection Point
int ProjectionPointGlobalToLocalSpace (const CoordinatesArrayType &rPointGlobalCoordinates, CoordinatesArrayType &rProjectedPointLocalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const override
 Projects a point onto the geometry Projects a certain point on the geometry, or finds the closest point, depending on the provided initial guess. The external point does not necessary lay on the geometry. It shall deal as the interface to the mathematical projection function e.g. the Newton-Raphson. Thus, the breaking criteria does not necessarily mean that it found a point on the surface, if it is really the closest if or not. It shows only if the breaking criteria, defined by the tolerance is reached. This function requires an initial guess, provided by rProjectionPointLocalCoordinates. This function can be a very costly operation. More...
 
IsInside
int IsInsideLocalSpace (const CoordinatesArrayType &rPointLocalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const override
 Checks if given point in local space coordinates of this geometry is inside the geometry boundaries. More...
 
ClosestPoint
int ClosestPointLocalToLocalSpace (const CoordinatesArrayType &rPointLocalCoordinates, CoordinatesArrayType &rClosestPointLocalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const override
 Calculates the closes point projection This method calculates the closest point projection of a point in local space coordinates. More...
 
Geometrical Informations
Point Center () const override
 Provides the center of the underlying surface. More...
 
double Length () const override
 Computes the length of a nurbs curve. More...
 
Jacobian
double DeterminantOfJacobian (const CoordinatesArrayType &rPoint) const override
 
Integration Info
IntegrationInfo GetDefaultIntegrationInfo () const override
 Provides the default integration dependent on the polynomial degree of the underlying surface. More...
 
Integration Points
void CreateIntegrationPoints (IntegrationPointsArrayType &rIntegrationPoints, IntegrationInfo &rIntegrationInfo) const override
 
Quadrature Point Geometries
void CreateQuadraturePointGeometries (GeometriesArrayType &rResultGeometries, IndexType NumberOfShapeFunctionDerivatives, const IntegrationPointsArrayType &rIntegrationPoints, IntegrationInfo &rIntegrationInfo) override
 This method creates a list of quadrature point geometries from a list of integration points. More...
 
Operation within Global Space
CoordinatesArrayTypeGlobalCoordinates (CoordinatesArrayType &rResult, const CoordinatesArrayType &rLocalCoordinates) const override
 
void GlobalSpaceDerivatives (std::vector< CoordinatesArrayType > &rGlobalSpaceDerivatives, const CoordinatesArrayType &rCoordinates, const SizeType DerivativeOrder) const override
 This method maps from dimension space to working space and computes the number of derivatives at the dimension parameter. From ANurbs library (https://github.com/oberbichler/ANurbs) More...
 
Kratos Geometry Families
GeometryData::KratosGeometryFamily GetGeometryFamily () const override
 
GeometryData::KratosGeometryType GetGeometryType () const override
 
Information
std::string Info () const override
 Turn back information as a string. More...
 
void PrintInfo (std::ostream &rOStream) const override
 Print information about this object. More...
 
void PrintData (std::ostream &rOStream) const override
 Print object's data. More...
 
- Public Member Functions inherited from Kratos::Geometry< TSurfaceContainerPointType::value_type >
 Geometry ()
 Standard Constructor. Generates self assigned id. More...
 
 Geometry (IndexType GeomertyId)
 Standard Constructor with a geometry Id. More...
 
 Geometry (const std::string &GeometryName)
 Standard Constructor with a Name. More...
 
 Geometry (const PointsArrayType &ThisPoints, GeometryData const *pThisGeometryData=&GeometryDataInstance())
 
 Geometry (IndexType GeometryId, const PointsArrayType &ThisPoints, GeometryData const *pThisGeometryData=&GeometryDataInstance())
 
 Geometry (const std::string &GeometryName, const PointsArrayType &ThisPoints, GeometryData const *pThisGeometryData=&GeometryDataInstance())
 
 Geometry (const Geometry &rOther)
 Copy constructor. More...
 
 Geometry (Geometry< TOtherPointType > const &rOther)
 Copy constructor with TOtherPointType. More...
 
virtual ~Geometry ()
 Destructor. Do nothing!!! More...
 
Geometryoperator= (const Geometry &rOther)
 
Geometryoperator= (Geometry< TOtherPointType > const &rOther)
 
 operator PointsArrayType & ()
 
TSurfaceContainerPointType::value_type & operator[] (const SizeType &i)
 
TSurfaceContainerPointType::value_type const & operator[] (const SizeType &i) const
 
PointPointerTypeoperator() (const SizeType &i)
 
ConstPointPointerTypeoperator() (const SizeType &i) const
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
ptr_iterator ptr_begin ()
 
ptr_const_iterator ptr_begin () const
 
ptr_iterator ptr_end ()
 
ptr_const_iterator ptr_end () const
 
PointReferenceType front ()
 
ConstPointReferenceType front () const
 
PointReferenceType back ()
 
ConstPointReferenceType back () const
 
SizeType size () const
 
SizeType PointsNumber () const
 
SizeType max_size () const
 
void swap (GeometryType &rOther)
 
void push_back (PointPointerType x)
 
void clear ()
 
void reserve (int dim)
 
int capacity ()
 
PointPointerContainerTypeGetContainer ()
 ‍** Gives a reference to underly normal container. *‍/ More...
 
const PointPointerContainerTypeGetContainer () const
 
DataValueContainerGetData ()
 
DataValueContainer const & GetData () const
 
void SetData (DataValueContainer const &rThisData)
 
bool Has (const Variable< TDataType > &rThisVariable) const
 
void SetValue (const TVariableType &rThisVariable, typename TVariableType::Type const &rValue)
 
TVariableType::Type & GetValue (const TVariableType &rThisVariable)
 
TVariableType::Type const & GetValue (const TVariableType &rThisVariable) const
 
virtual void Assign (const Variable< bool > &rVariable, const bool Input)
 Assign with bool. More...
 
virtual void Assign (const Variable< int > &rVariable, const int Input)
 Assign with int. More...
 
virtual void Assign (const Variable< double > &rVariable, const double Input)
 Assign with double. More...
 
virtual void Assign (const Variable< array_1d< double, 2 >> &rVariable, const array_1d< double, 2 > &rInput)
 Assign with array_1d<double, 2> More...
 
virtual void Assign (const Variable< array_1d< double, 3 >> &rVariable, const array_1d< double, 3 > &rInput)
 Assign with array_1d<double, 3> More...
 
virtual void Assign (const Variable< array_1d< double, 6 >> &rVariable, const array_1d< double, 6 > &rInput)
 Assign with array_1d<double, 6> More...
 
virtual void Assign (const Variable< Vector > &rVariable, const Vector &rInput)
 Assign with Vector. More...
 
virtual void Assign (const Variable< Matrix > &rVariable, const Matrix &rInput)
 Assign with Matrix. More...
 
virtual void Calculate (const Variable< bool > &rVariable, bool &rOutput) const
 Calculate with bool. More...
 
virtual void Calculate (const Variable< int > &rVariable, int &rOutput) const
 Calculate with int. More...
 
virtual void Calculate (const Variable< double > &rVariable, double &rOutput) const
 Calculate with double. More...
 
virtual void Calculate (const Variable< array_1d< double, 2 >> &rVariable, array_1d< double, 2 > &rOutput) const
 Calculate with array_1d<double, 2> More...
 
virtual void Calculate (const Variable< array_1d< double, 6 >> &rVariable, array_1d< double, 6 > &rOutput) const
 Calculate with array_1d<double, 6> More...
 
virtual void Calculate (const Variable< Vector > &rVariable, Vector &rOutput) const
 Calculate with Vector. More...
 
virtual void Calculate (const Variable< Matrix > &rVariable, Matrix &rOutput) const
 Calculate with Matrix. More...
 
virtual Pointer Create (PointsArrayType const &rThisPoints) const
 Creates a new geometry pointer. More...
 
virtual Pointer Create (const IndexType NewGeometryId, PointsArrayType const &rThisPoints) const
 Creates a new geometry pointer. More...
 
Pointer Create (const std::string &rNewGeometryName, PointsArrayType const &rThisPoints) const
 Creates a new geometry pointer. More...
 
virtual Pointer Create (const GeometryType &rGeometry) const
 Creates a new geometry pointer. More...
 
virtual Pointer Create (const IndexType NewGeometryId, const GeometryType &rGeometry) const
 Creates a new geometry pointer. More...
 
Pointer Create (const std::string &rNewGeometryName, const GeometryType &rGeometry) const
 Creates a new geometry pointer. More...
 
void ClonePoints ()
 
virtual VectorLumpingFactors (Vector &rResult, const LumpingMethods LumpingMethod=LumpingMethods::ROW_SUM) const
 Lumping factors for the calculation of the lumped mass matrix. More...
 
GeometryData const & GetGeometryData () const
 GeometryData contains all information about dimensions and has a set of precomputed values for integration points and shape functions, including derivatives. More...
 
virtual void SetGeometryShapeFunctionContainer (const GeometryShapeFunctionContainer< GeometryData::IntegrationMethod > &rGeometryShapeFunctionContainer)
 
virtual GeometryTypeGetGeometryParent (IndexType Index) const
 Some geometries require relations to other geometries. This is the case for e.g. quadrature points. To reach the parent geometry this function can be used. More...
 
virtual void SetGeometryParent (GeometryType *pGeometryParent)
 Some geometries require relations to other geometries. This is the case for e.g. quadrature points. To set or change the parent geometry this function can be used. More...
 
virtual GeometryTypeGetGeometryPart (const IndexType Index)
 Used for composite geometries. It returns the the geometry part, corresponding to the Index. More...
 
virtual const GeometryTypeGetGeometryPart (const IndexType Index) const
 Used for composite geometries. It returns the the geometry part, corresponding to the Index. More...
 
virtual void SetGeometryPart (const IndexType Index, GeometryType::Pointer pGeometry)
 Allows to exchange certain geometries. More...
 
virtual IndexType AddGeometryPart (GeometryType::Pointer pGeometry)
 Allows to enhance the coupling geometry, with another geometry. More...
 
virtual void RemoveGeometryPart (GeometryType::Pointer pGeometry)
 Removes a geometry part. More...
 
virtual void RemoveGeometryPart (const IndexType Index)
 Removes a geometry part. More...
 
virtual SizeType NumberOfGeometryParts () const
 
SizeType WorkingSpaceDimension () const
 
SizeType LocalSpaceDimension () const
 
virtual double Area () const
 This method calculate and return area or surface area of this geometry depending to it's dimension. More...
 
virtual double Volume () const
 This method calculate and return volume of this geometry. More...
 
virtual double DomainSize () const
 This method calculate and return length, area or volume of this geometry depending to it's dimension. More...
 
virtual double MinEdgeLength () const
 
virtual double MaxEdgeLength () const
 
virtual double AverageEdgeLength () const
 
virtual double Circumradius () const
 
virtual double Inradius () const
 
virtual bool HasIntersection (const GeometryType &ThisGeometry) const
 
virtual bool HasIntersection (const Point &rLowPoint, const Point &rHighPoint) const
 
virtual void BoundingBox (TSurfaceContainerPointType::value_type &rLowPoint, TSurfaceContainerPointType::value_type &rHighPoint) const
 Calculates the boundingbox of the geometry. More...
 
virtual array_1d< double, 3 > Normal (const CoordinatesArrayType &rPointLocalCoordinates) const
 It returns a vector that is normal to its corresponding geometry in the given local point. More...
 
virtual array_1d< double, 3 > Normal (IndexType IntegrationPointIndex) const
 It returns the vector, which is normal to its corresponding geometry in the given integration point for the default integration method. More...
 
virtual array_1d< double, 3 > Normal (IndexType IntegrationPointIndex, IntegrationMethod ThisMethod) const
 It returns the vector, which is normal to its corresponding geometry in the given integration point. More...
 
virtual array_1d< double, 3 > UnitNormal (const CoordinatesArrayType &rPointLocalCoordinates) const
 It computes the unit normal of the geometry in the given local point. More...
 
virtual array_1d< double, 3 > UnitNormal (IndexType IntegrationPointIndex) const
 It returns the normalized normal vector in the given integration point. More...
 
virtual array_1d< double, 3 > UnitNormal (IndexType IntegrationPointIndex, IntegrationMethod ThisMethod) const
 It returns the normalized normal vector in the given integration point. More...
 
double Quality (const QualityCriteria qualityCriteria) const
 
virtual void ComputeDihedralAngles (Vector &rDihedralAngles) const
 
virtual void ComputeSolidAngles (Vector &rSolidAngles) const
 
const PointsArrayTypePoints () const
 
PointsArrayTypePoints ()
 
const TPointType::Pointer pGetPoint (const int Index) const
 
TPointType::Pointer pGetPoint (const int Index)
 
TSurfaceContainerPointType::value_type const & GetPoint (const int Index) const
 
TSurfaceContainerPointType::value_type & GetPoint (const int Index)
 
virtual MatrixPointsLocalCoordinates (Matrix &rResult) const
 
virtual CoordinatesArrayTypePointLocalCoordinates (CoordinatesArrayType &rResult, const CoordinatesArrayType &rPoint) const
 Returns the local coordinates of a given arbitrary point. More...
 
virtual bool IsInside (const CoordinatesArrayType &rPointGlobalCoordinates, CoordinatesArrayType &rResult, const double Tolerance=std::numeric_limits< double >::epsilon()) const
 Checks if given point in global space coordinates is inside the geometry boundaries. This function computes the local coordinates and checks then if this point lays within the boundaries. More...
 
virtual GeometriesArrayType GenerateBoundariesEntities () const
 This method gives you all boundaries entities of this geometry. More...
 
virtual GeometriesArrayType GeneratePoints () const
 This method gives you all points of this geometry. More...
 
virtual SizeType EdgesNumber () const
 This method gives you number of all edges of this geometry. More...
 
 KRATOS_DEPRECATED_MESSAGE ("This is legacy version (use GenerateEdges instead)") virtual GeometriesArrayType Edges(void)
 This method gives you all edges of this geometry. More...
 
virtual GeometriesArrayType GenerateEdges () const
 This method gives you all edges of this geometry. More...
 
 KRATOS_DEPRECATED_MESSAGE ("This is legacy version (use GenerateFaces instead)") virtual GeometriesArrayType Faces(void)
 Returns all faces of the current geometry. More...
 
virtual SizeType FacesNumber () const
 Returns the number of faces of the current geometry. More...
 
virtual GeometriesArrayType GenerateFaces () const
 Returns all faces of the current geometry. More...
 
virtual void NumberNodesInFaces (DenseVector< unsigned int > &rNumberNodesInFaces) const
 
virtual void NodesInFaces (DenseMatrix< unsigned int > &rNodesInFaces) const
 
SizeType IntegrationPointsNumber () const
 
SizeType IntegrationPointsNumber (IntegrationMethod ThisMethod) const
 
const IntegrationPointsArrayTypeIntegrationPoints () const
 
const IntegrationPointsArrayTypeIntegrationPoints (IntegrationMethod ThisMethod) const
 
virtual void CreateQuadraturePointGeometries (GeometriesArrayType &rResultGeometries, IndexType NumberOfShapeFunctionDerivatives, IntegrationInfo &rIntegrationInfo)
 
void GlobalCoordinates (CoordinatesArrayType &rResult, IndexType IntegrationPointIndex) const
 
void GlobalCoordinates (CoordinatesArrayType &rResult, IndexType IntegrationPointIndex, const IntegrationMethod ThisMethod) const
 This method provides the global coordinates to the corresponding integration point. More...
 
virtual CoordinatesArrayTypeGlobalCoordinates (CoordinatesArrayType &rResult, CoordinatesArrayType const &LocalCoordinates, Matrix &DeltaPosition) const
 
virtual void GlobalSpaceDerivatives (std::vector< CoordinatesArrayType > &rGlobalSpaceDerivatives, IndexType IntegrationPointIndex, const SizeType DerivativeOrder) const
 This method maps from dimension space to working space and computes the number of derivatives at the dimension parameter. More...
 
virtual int ProjectionPoint (const CoordinatesArrayType &rPointGlobalCoordinates, CoordinatesArrayType &rProjectedPointGlobalCoordinates, CoordinatesArrayType &rProjectedPointLocalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const
 Projects a certain point on the geometry, or finds the closest point, depending on the provided initial guess. The external point does not necessary lay on the geometry. It shall deal as the interface to the mathematical projection function e.g. the Newton-Raphson. Thus, the breaking criteria does not necessarily mean that it found a point on the surface, if it is really the closest if or not. It shows only if the breaking criteria, defined by the tolerance is reached. More...
 
virtual int ProjectionPointLocalToLocalSpace (const CoordinatesArrayType &rPointLocalCoordinates, CoordinatesArrayType &rProjectionPointLocalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const
 Projects a point onto the geometry Projects a certain point on the geometry, or finds the closest point, depending on the provided initial guess. The external point does not necessary lay on the geometry. It shall deal as the interface to the mathematical projection function e.g. the Newton-Raphson. Thus, the breaking criteria does not necessarily mean that it found a point on the surface, if it is really the closest if or not. It shows only if the breaking criteria, defined by the tolerance is reached. This function requires an initial guess, provided by rProjectionPointLocalCoordinates. This function can be a very costly operation. More...
 
virtual int ClosestPoint (const CoordinatesArrayType &rPointGlobalCoordinates, CoordinatesArrayType &rClosestPointGlobalCoordinates, CoordinatesArrayType &rClosestPointLocalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const
 Returns all coordinates of the closest point on the geometry given to an arbitrary point in global coordinates. The basic concept is to first do a projection towards this geometry and second checking if the projection was successfull or if no point on the geometry was found. More...
 
virtual int ClosestPoint (const CoordinatesArrayType &rPointGlobalCoordinates, CoordinatesArrayType &rClosestPointGlobalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const
 Returns global coordinates of the closest point on the geometry given to an arbitrary point in global coordinates. The basic concept is to first do a projection towards this geometry and second checking if the projection was successfull or if no point on the geometry was found. More...
 
virtual int ClosestPointLocalCoordinates (const CoordinatesArrayType &rPointGlobalCoordinates, CoordinatesArrayType &rClosestPointLocalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const
 Returns local coordinates of the closest point on the geometry given to an arbitrary point in global coordinates. The basic concept is to first do a projection towards this geometry and second checking if the projection was successfull or if no point on the geometry was found. More...
 
virtual int ClosestPointGlobalToLocalSpace (const CoordinatesArrayType &rPointGlobalCoordinates, CoordinatesArrayType &rClosestPointLocalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const
 Calculates the closes point projection This method calculates the closest point projection of a point in global space coordinates. More...
 
virtual double CalculateDistance (const CoordinatesArrayType &rPointGlobalCoordinates, const double Tolerance=std::numeric_limits< double >::epsilon()) const
 Computes the distance between an point in global coordinates and the closest point of this geometry. If projection fails, double::max will be returned. More...
 
JacobiansTypeJacobian (JacobiansType &rResult) const
 
virtual JacobiansTypeJacobian (JacobiansType &rResult, IntegrationMethod ThisMethod) const
 
virtual JacobiansTypeJacobian (JacobiansType &rResult, IntegrationMethod ThisMethod, Matrix &DeltaPosition) const
 
MatrixJacobian (Matrix &rResult, IndexType IntegrationPointIndex) const
 
virtual MatrixJacobian (Matrix &rResult, IndexType IntegrationPointIndex, IntegrationMethod ThisMethod) const
 
virtual MatrixJacobian (Matrix &rResult, IndexType IntegrationPointIndex, IntegrationMethod ThisMethod, const Matrix &rDeltaPosition) const
 
virtual MatrixJacobian (Matrix &rResult, const CoordinatesArrayType &rCoordinates) const
 
virtual MatrixJacobian (Matrix &rResult, const CoordinatesArrayType &rCoordinates, Matrix &rDeltaPosition) const
 
VectorDeterminantOfJacobian (Vector &rResult) const
 
virtual VectorDeterminantOfJacobian (Vector &rResult, IntegrationMethod ThisMethod) const
 
double DeterminantOfJacobian (IndexType IntegrationPointIndex) const
 
virtual double DeterminantOfJacobian (IndexType IntegrationPointIndex, IntegrationMethod ThisMethod) const
 
JacobiansTypeInverseOfJacobian (JacobiansType &rResult) const
 
virtual JacobiansTypeInverseOfJacobian (JacobiansType &rResult, IntegrationMethod ThisMethod) const
 
MatrixInverseOfJacobian (Matrix &rResult, IndexType IntegrationPointIndex) const
 
virtual MatrixInverseOfJacobian (Matrix &rResult, IndexType IntegrationPointIndex, IntegrationMethod ThisMethod) const
 
virtual MatrixInverseOfJacobian (Matrix &rResult, const CoordinatesArrayType &rCoordinates) const
 
const MatrixShapeFunctionsValues () const
 
virtual VectorShapeFunctionsValues (Vector &rResult, const CoordinatesArrayType &rCoordinates) const
 
const MatrixShapeFunctionsValues (IntegrationMethod ThisMethod) const
 
double ShapeFunctionValue (IndexType IntegrationPointIndex, IndexType ShapeFunctionIndex) const
 
double ShapeFunctionValue (IndexType IntegrationPointIndex, IndexType ShapeFunctionIndex, IntegrationMethod ThisMethod) const
 
virtual double ShapeFunctionValue (IndexType ShapeFunctionIndex, const CoordinatesArrayType &rCoordinates) const
 
const ShapeFunctionsGradientsTypeShapeFunctionsLocalGradients () const
 
const ShapeFunctionsGradientsTypeShapeFunctionsLocalGradients (IntegrationMethod ThisMethod) const
 
virtual MatrixShapeFunctionsLocalGradients (Matrix &rResult, const CoordinatesArrayType &rPoint) const
 
const MatrixShapeFunctionLocalGradient (IndexType IntegrationPointIndex) const
 
const MatrixShapeFunctionLocalGradient (IndexType IntegrationPointIndex, IntegrationMethod ThisMethod) const
 
const MatrixShapeFunctionLocalGradient (IndexType IntegrationPointIndex, IndexType ShapeFunctionIndex, IntegrationMethod ThisMethod) const
 
const MatrixShapeFunctionDerivatives (IndexType DerivativeOrderIndex, IndexType IntegrationPointIndex, IntegrationMethod ThisMethod) const
 
const MatrixShapeFunctionDerivatives (IndexType DerivativeOrderIndex, IndexType IntegrationPointIndex) const
 
virtual ShapeFunctionsSecondDerivativesTypeShapeFunctionsSecondDerivatives (ShapeFunctionsSecondDerivativesType &rResult, const CoordinatesArrayType &rPoint) const
 
virtual ShapeFunctionsThirdDerivativesTypeShapeFunctionsThirdDerivatives (ShapeFunctionsThirdDerivativesType &rResult, const CoordinatesArrayType &rPoint) const
 
void ShapeFunctionsIntegrationPointsGradients (ShapeFunctionsGradientsType &rResult) const
 
virtual void ShapeFunctionsIntegrationPointsGradients (ShapeFunctionsGradientsType &rResult, IntegrationMethod ThisMethod) const
 
virtual void ShapeFunctionsIntegrationPointsGradients (ShapeFunctionsGradientsType &rResult, Vector &rDeterminantsOfJacobian, IntegrationMethod ThisMethod) const
 
virtual void ShapeFunctionsIntegrationPointsGradients (ShapeFunctionsGradientsType &rResult, Vector &rDeterminantsOfJacobian, IntegrationMethod ThisMethod, Matrix &ShapeFunctionsIntegrationPointsValues) const
 
virtual int Check () const
 
virtual std::string Name () const
 Returns name. More...
 
virtual void PrintName (std::ostream &rOstream) const
 Print name. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (Geometry)
 Pointer definition of Geometry. More...
 
bool empty () const
 
bool HasIntegrationMethod (IntegrationMethod ThisMethod) const
 
IntegrationMethod GetDefaultIntegrationMethod () const
 
virtual bool IsSymmetric () const
 
IndexType const & Id () const
 Id of this Geometry. More...
 
bool IsIdGeneratedFromString ()
 Returns if id was generated from a geometry name. More...
 
bool IsIdSelfAssigned ()
 Returns if id was generated by itself. More...
 
void SetId (const IndexType Id)
 Sets Id of this Geometry. More...
 
void SetId (const std::string &rName)
 Sets Id with the use of the name of this geometry. More...
 

Type Definitions

typedef TSurfaceContainerPointType::value_type NodeType
 
typedef TCurveContainerPointType::value_type CurveNodeType
 
typedef Geometry< NodeTypeGeometryType
 
typedef GeometryType::Pointer GeometryPointer
 
typedef Geometry< NodeTypeBaseType
 
typedef BaseType::IndexType IndexType
 
typedef BaseType::SizeType SizeType
 
typedef NurbsSurfaceGeometry< 3, TSurfaceContainerPointType > NurbsSurfaceType
 
typedef NurbsCurveGeometry< 2, TCurveContainerPointType > NurbsCurveType
 
typedef NurbsCurveType::Pointer NurbsCurvePointerType
 
typedef BaseType::CoordinatesArrayType CoordinatesArrayType
 
typedef BaseType::PointsArrayType PointsArrayType
 
typedef BaseType::GeometriesArrayType GeometriesArrayType
 
typedef BaseType::IntegrationPointsArrayType IntegrationPointsArrayType
 
 KRATOS_CLASS_POINTER_DEFINITION (NurbsCurveOnSurfaceGeometry)
 Counted pointer of NurbsCurveOnSurfaceGeometry. More...
 
virtual void CreateQuadraturePointGeometries (GeometriesArrayType &rResultGeometries, IndexType NumberOfShapeFunctionDerivatives, const IntegrationPointsArrayType &rIntegrationPoints, IntegrationInfo &rIntegrationInfo)
 
virtual void CreateQuadraturePointGeometries (GeometriesArrayType &rResultGeometries, IndexType NumberOfShapeFunctionDerivatives, IntegrationInfo &rIntegrationInfo)
 
const TPointType::Pointer pGetPoint (const int Index) const
 
TPointType::Pointer pGetPoint (const int Index)
 
TPointType const & GetPoint (const int Index) const
 
TPointType & GetPoint (const int Index)
 

Private Serialization

class Serializer
 

Additional Inherited Members

- Public Types inherited from Kratos::Geometry< TSurfaceContainerPointType::value_type >
enum class  QualityCriteria
 
enum class  LumpingMethods
 This defines the different methods to compute the lumping methods. More...
 
typedef Geometry< TSurfaceContainerPointType::value_type > GeometryType
 This Geometry type. More...
 
typedef PointerVector< TSurfaceContainerPointType::value_type > PointsArrayType
 
typedef GeometryData::IntegrationMethod IntegrationMethod
 
typedef PointerVector< GeometryTypeGeometriesArrayType
 
typedef TSurfaceContainerPointType::value_type PointType
 
typedef std::size_t IndexType
 
typedef std::size_t SizeType
 
typedef PointType::CoordinatesArrayType CoordinatesArrayType
 
typedef IntegrationPoint< 3 > IntegrationPointType
 
typedef std::vector< IntegrationPointTypeIntegrationPointsArrayType
 
typedef std::array< IntegrationPointsArrayType, static_cast< int >GeometryData::IntegrationMethod::NumberOfIntegrationMethods)> IntegrationPointsContainerType
 
typedef std::array< Matrix, static_cast< int >GeometryData::IntegrationMethod::NumberOfIntegrationMethods)> ShapeFunctionsValuesContainerType
 
typedef GeometryData::ShapeFunctionsLocalGradientsContainerType ShapeFunctionsLocalGradientsContainerType
 
typedef DenseVector< MatrixJacobiansType
 
typedef GeometryData::ShapeFunctionsGradientsType ShapeFunctionsGradientsType
 
typedef GeometryData::ShapeFunctionsSecondDerivativesType ShapeFunctionsSecondDerivativesType
 
typedef GeometryData::ShapeFunctionsThirdDerivativesType ShapeFunctionsThirdDerivativesType
 
typedef DenseVector< double > NormalType
 
typedef PointType::Pointer PointPointerType
 data type stores in this container. More...
 
typedef const PointPointerType ConstPointPointerType
 
typedef TSurfaceContainerPointType::value_type & PointReferenceType
 
typedef const TSurfaceContainerPointType::value_type & ConstPointReferenceType
 
typedef std::vector< PointPointerTypePointPointerContainerType
 
typedef PointsArrayType::iterator iterator
 PointsArrayType typedefs. More...
 
typedef PointsArrayType::const_iterator const_iterator
 
typedef PointsArrayType::ptr_iterator ptr_iterator
 
typedef PointsArrayType::ptr_const_iterator ptr_const_iterator
 
typedef PointsArrayType::difference_type difference_type
 
- Static Public Member Functions inherited from Kratos::Geometry< TSurfaceContainerPointType::value_type >
static bool HasSameType (const GeometryType &rLHS, const GeometryType &rRHS)
 Checks if two GeometryType have the same type. More...
 
static bool HasSameType (const GeometryType *rLHS, const GeometryType *rRHS)
 Checks if two GeometryType have the same type (pointer version) More...
 
static bool HasSameGeometryType (const GeometryType &rLHS, const GeometryType &rRHS)
 Checks if two GeometryType have the same geometry type. More...
 
static bool HasSameGeometryType (const GeometryType *rLHS, const GeometryType *rRHS)
 Checks if two GeometryType have the same geometry type (pointer version) More...
 
static bool IsSame (const GeometryType &rLHS, const GeometryType &rRHS)
 Checks if two GeometryType are the same. More...
 
static bool IsSame (const GeometryType *rLHS, const GeometryType *rRHS)
 Checks if two GeometryType are the same (pointer version) More...
 
static IndexType GenerateId (const std::string &rName)
 Gets the corresponding hash-Id to a string name. More...
 
- Static Public Attributes inherited from Kratos::Geometry< TSurfaceContainerPointType::value_type >
static constexpr IndexType BACKGROUND_GEOMETRY_INDEX
 
- Protected Member Functions inherited from Kratos::Geometry< TSurfaceContainerPointType::value_type >
void SetGeometryData (GeometryData const *pGeometryData)
 updates the pointer to GeometryData of the respective geometry. More...
 
virtual double InradiusToCircumradiusQuality () const
 Quality functions. More...
 
virtual double AreaToEdgeLengthRatio () const
 
virtual double ShortestAltitudeToEdgeLengthRatio () const
 
virtual double InradiusToLongestEdgeQuality () const
 
virtual double ShortestToLongestEdgeQuality () const
 
virtual double RegularityQuality () const
 
virtual double VolumeToSurfaceAreaQuality () const
 
virtual double VolumeToEdgeLengthQuality () const
 
virtual double VolumeToAverageEdgeLength () const
 
virtual double VolumeToRMSEdgeLength () const
 
virtual double MinDihedralAngle () const
 
virtual double MaxDihedralAngle () const
 
virtual double MinSolidAngle () const
 
bool AllPointsAreValid () const
 Checks if the geometry points are valid Checks if the geometry points are valid from the pointer value Points are not valid when the pointer value is null. More...
 

Member Typedef Documentation

◆ BaseType

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
typedef Geometry<NodeType> Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::BaseType

◆ CoordinatesArrayType

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
typedef BaseType::CoordinatesArrayType Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::CoordinatesArrayType

◆ CurveNodeType

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
typedef TCurveContainerPointType::value_type Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::CurveNodeType

◆ GeometriesArrayType

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
typedef BaseType::GeometriesArrayType Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::GeometriesArrayType

◆ GeometryPointer

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
typedef GeometryType::Pointer Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::GeometryPointer

◆ GeometryType

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
typedef Geometry<NodeType> Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::GeometryType

◆ IndexType

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
typedef BaseType::IndexType Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::IndexType

◆ IntegrationPointsArrayType

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
typedef BaseType::IntegrationPointsArrayType Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::IntegrationPointsArrayType

◆ NodeType

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
typedef TSurfaceContainerPointType::value_type Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::NodeType

◆ NurbsCurvePointerType

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
typedef NurbsCurveType::Pointer Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::NurbsCurvePointerType

◆ NurbsCurveType

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
typedef NurbsCurveGeometry<2, TCurveContainerPointType> Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::NurbsCurveType

◆ NurbsSurfaceType

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
typedef NurbsSurfaceGeometry<3, TSurfaceContainerPointType> Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::NurbsSurfaceType

◆ PointsArrayType

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
typedef BaseType::PointsArrayType Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::PointsArrayType

◆ SizeType

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
typedef BaseType::SizeType Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::SizeType

Constructor & Destructor Documentation

◆ NurbsCurveOnSurfaceGeometry() [1/4]

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::NurbsCurveOnSurfaceGeometry ( typename NurbsSurfaceType::Pointer  pSurface,
typename NurbsCurveType::Pointer  pCurve 
)
inline

Constructor.

◆ NurbsCurveOnSurfaceGeometry() [2/4]

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::NurbsCurveOnSurfaceGeometry ( )
inline

Default constructor.

◆ NurbsCurveOnSurfaceGeometry() [3/4]

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::NurbsCurveOnSurfaceGeometry ( NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType > const &  rOther)
inline

Copy constructor.

◆ NurbsCurveOnSurfaceGeometry() [4/4]

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
template<class TOtherCurveContainerPointType , class TOtherSurfaceContainerPointType >
Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::NurbsCurveOnSurfaceGeometry ( NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TOtherCurveContainerPointType, TOtherSurfaceContainerPointType > const &  rOther)
inline

Copy constructor, with different point type.

◆ ~NurbsCurveOnSurfaceGeometry()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::~NurbsCurveOnSurfaceGeometry ( )
overridedefault

Destructor.

Member Function Documentation

◆ Calculate()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
void Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::Calculate ( const Variable< array_1d< double, 3 >> &  rVariable,
array_1d< double, 3 > &  rOutput 
) const
inlineoverridevirtual

◆ Center()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
Point Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::Center ( ) const
inlineoverridevirtual

Provides the center of the underlying surface.

Reimplemented from Kratos::Geometry< TSurfaceContainerPointType::value_type >.

◆ ClosestPointLocalToLocalSpace()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
int Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::ClosestPointLocalToLocalSpace ( const CoordinatesArrayType rPointLocalCoordinates,
CoordinatesArrayType rClosestPointLocalCoordinates,
const double  Tolerance = std::numeric_limits<double>::epsilon() 
) const
inlineoverridevirtual

Calculates the closes point projection This method calculates the closest point projection of a point in local space coordinates.

Parameters
rPointLocalCoordinatesInput local coordinates
rClosestPointLocalCoordinatesClosest point local coordinates. This should be initialized with the initial guess
ToleranceAccepted orthogonal error
Returns
int -1 -> failed 0 -> outside 1 -> inside 2 -> on the boundary

Reimplemented from Kratos::Geometry< TSurfaceContainerPointType::value_type >.

◆ Create()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
BaseType::Pointer Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::Create ( TSurfaceContainerPointType const &  ThisPoints) const
inlineoverride

◆ CreateIntegrationPoints()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
void Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::CreateIntegrationPoints ( IntegrationPointsArrayType rIntegrationPoints,
IntegrationInfo rIntegrationInfo 
) const
inlineoverridevirtual

◆ CreateQuadraturePointGeometries() [1/3]

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
virtual void Kratos::Geometry< TPointType >::CreateQuadraturePointGeometries
inline

◆ CreateQuadraturePointGeometries() [2/3]

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
void Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::CreateQuadraturePointGeometries ( GeometriesArrayType rResultGeometries,
IndexType  NumberOfShapeFunctionDerivatives,
const IntegrationPointsArrayType rIntegrationPoints,
IntegrationInfo rIntegrationInfo 
)
inlineoverridevirtual

This method creates a list of quadrature point geometries from a list of integration points.

Parameters
rResultGeometrieslist of quadrature point geometries.
rIntegrationPointslist of integration points.
NumberOfShapeFunctionDerivativesthe number provided derivatives of shape functions in the system.
See also
quadrature_point_geometry.h

Get List of Control Points

Get Shape Functions N

Get Shape Function Derivatives DN_De, ...

Reimplemented from Kratos::Geometry< TSurfaceContainerPointType::value_type >.

◆ CreateQuadraturePointGeometries() [3/3]

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
virtual void Kratos::Geometry< TPointType >::CreateQuadraturePointGeometries
inline

◆ DeterminantOfJacobian()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
double Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::DeterminantOfJacobian ( const CoordinatesArrayType rPoint) const
inlineoverridevirtual

Determinant of jacobian in given point. This method calculate determinant of jacobian matrix in given point.

Parameters
rPointpoint which determinant of jacobians has to be calculated in it.
Returns
Determinamt of jacobian matrix \( |J| \) in given point.
See also
DeterminantOfJacobian
InverseOfJacobian

Reimplemented from Kratos::Geometry< TSurfaceContainerPointType::value_type >.

◆ DomainInterval()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
NurbsInterval Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::DomainInterval ( ) const
inline

◆ GetDefaultIntegrationInfo()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
IntegrationInfo Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::GetDefaultIntegrationInfo ( ) const
inlineoverridevirtual

Provides the default integration dependent on the polynomial degree of the underlying surface.

Reimplemented from Kratos::Geometry< TSurfaceContainerPointType::value_type >.

◆ GetGeometryFamily()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
GeometryData::KratosGeometryFamily Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::GetGeometryFamily ( ) const
inlineoverridevirtual

◆ GetGeometryType()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
GeometryData::KratosGeometryType Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::GetGeometryType ( ) const
inlineoverridevirtual

◆ GetPoint() [1/2]

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
TPointType& Kratos::Geometry< TPointType >::GetPoint
inline

An access method to the i'th points stored in this geometry.

Returns
A counted pointer to i'th point of geometry.

◆ GetPoint() [2/2]

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
TPointType const& Kratos::Geometry< TPointType >::GetPoint
inline

A constant access method to the i'th points stored in this geometry.

Returns
A constant counted pointer to i'th point of geometry.

◆ GlobalCoordinates()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
CoordinatesArrayType& Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::GlobalCoordinates ( CoordinatesArrayType rResult,
const CoordinatesArrayType LocalCoordinates 
) const
inlineoverridevirtual

This method provides the global coordinates corresponding to the local coordinates provided

Parameters
rResultThe array containing the global coordinates corresponding to the local coordinates provided
LocalCoordinatesThe local coordinates provided
Returns
An array containing the global coordinates corresponding to the local coordinates provides
See also
PointLocalCoordinates

Reimplemented from Kratos::Geometry< TSurfaceContainerPointType::value_type >.

◆ GlobalSpaceDerivatives()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
void Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::GlobalSpaceDerivatives ( std::vector< CoordinatesArrayType > &  rGlobalSpaceDerivatives,
const CoordinatesArrayType rCoordinates,
const SizeType  DerivativeOrder 
) const
inlineoverridevirtual

This method maps from dimension space to working space and computes the number of derivatives at the dimension parameter. From ANurbs library (https://github.com/oberbichler/ANurbs)

Parameters
LocalCoordinatesThe local coordinates in dimension space
DerivativeNumber of computed derivatives
Returns
std::vector<array_1d<double, 3>> with the coordinates in working space
See also
PointLocalCoordinates

Reimplemented from Kratos::Geometry< TSurfaceContainerPointType::value_type >.

◆ HasGeometryPart()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
bool Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::HasGeometryPart ( const IndexType  Index) const
inlineoverridevirtual

This function is used to check if the index is GeometryType::BACKGROUND_GEOMETRY_INDEX.

Parameters
Indexof the geometry part.
Returns
true if GeometryType::BACKGROUND_GEOMETRY_INDEX.

Reimplemented from Kratos::Geometry< TSurfaceContainerPointType::value_type >.

◆ Info()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
std::string Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::Info ( ) const
inlineoverridevirtual

Turn back information as a string.

Reimplemented from Kratos::Geometry< TSurfaceContainerPointType::value_type >.

◆ IsInsideLocalSpace()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
int Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::IsInsideLocalSpace ( const CoordinatesArrayType rPointLocalCoordinates,
const double  Tolerance = std::numeric_limits<double>::epsilon() 
) const
inlineoverridevirtual

Checks if given point in local space coordinates of this geometry is inside the geometry boundaries.

Parameters
rPointLocalCoordinatesthe point on the geometry, which shall be checked if it lays within the boundaries.
Tolerancethe tolerance to the boundary.
Returns
-1 -> failed 0 -> outside 1 -> inside 2 -> on the boundary

Reimplemented from Kratos::Geometry< TSurfaceContainerPointType::value_type >.

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::KRATOS_CLASS_POINTER_DEFINITION ( NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >  )

Counted pointer of NurbsCurveOnSurfaceGeometry.

◆ Length()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
double Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::Length ( ) const
inlineoverridevirtual

Computes the length of a nurbs curve.

Reimplemented from Kratos::Geometry< TSurfaceContainerPointType::value_type >.

◆ operator=() [1/2]

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
NurbsCurveOnSurfaceGeometry& Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::operator= ( const NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType > &  rOther)
inline

Assignment operator.

◆ operator=() [2/2]

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
template<class TOtherCurveContainerPointType , class TOtherSurfaceContainerPointType >
NurbsCurveOnSurfaceGeometry& Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::operator= ( NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TOtherCurveContainerPointType, TOtherSurfaceContainerPointType > const &  rOther)
inline

Assignment operator for geometries with different point type.

◆ pGetCurve() [1/2]

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
NurbsCurvePointerType Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::pGetCurve ( )
inline

◆ pGetCurve() [2/2]

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
const NurbsCurvePointerType Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::pGetCurve ( ) const
inline

Returns the const NurbsCurveOnSurface::Pointer of this brep.

◆ pGetGeometryPart() [1/2]

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
const GeometryPointer Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::pGetGeometryPart ( const IndexType  Index) const
inlineoverridevirtual

This function returns the pointer of the geometry which is corresponding to the trim index. Possible indices are: SURFACE_INDEX or EMBEDDED_CURVE_INDEX.

Parameters
IndexSURFACE_INDEX or EMBEDDED_CURVE_INDEX.
Returns
pointer of geometry, corresponding to the index.

Reimplemented from Kratos::Geometry< TSurfaceContainerPointType::value_type >.

◆ pGetGeometryPart() [2/2]

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
GeometryPointer Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::pGetGeometryPart ( const IndexType  Index)
inlineoverridevirtual

This function returns the pointer of the geometry which is corresponding to the trim index. Possible indices are: SURFACE_INDEX or EMBEDDED_CURVE_INDEX.

Parameters
IndexSURFACE_INDEX or EMBEDDED_CURVE_INDEX.
Returns
pointer of geometry, corresponding to the index.

Reimplemented from Kratos::Geometry< TSurfaceContainerPointType::value_type >.

◆ pGetPoint() [1/2]

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
TPointType::Pointer Kratos::Geometry< TPointType >::pGetPoint
inline

An access method to the i'th points stored in this geometry.

Returns
A counted pointer to i'th point of geometry.

◆ pGetPoint() [2/2]

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
const TPointType::Pointer Kratos::Geometry< TPointType >::pGetPoint
inline

A constant access method to the i'th points stored in this geometry.

Returns
A constant counted pointer to i'th point of geometry.

◆ PointsNumberInDirection()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
SizeType Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::PointsNumberInDirection ( IndexType  LocalDirectionIndex) const
inlineoverridevirtual

Returns number of points of NurbsCurve.

Reimplemented from Kratos::Geometry< TSurfaceContainerPointType::value_type >.

◆ PolynomialDegree()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
SizeType Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::PolynomialDegree ( IndexType  LocalDirectionIndex) const
inlineoverridevirtual

Return polynomial degree of the curve.

Reimplemented from Kratos::Geometry< TSurfaceContainerPointType::value_type >.

◆ PrintData()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
void Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::PrintData ( std::ostream &  rOStream) const
inlineoverridevirtual

Print object's data.

Reimplemented from Kratos::Geometry< TSurfaceContainerPointType::value_type >.

◆ PrintInfo()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
void Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::PrintInfo ( std::ostream &  rOStream) const
inlineoverridevirtual

Print information about this object.

Reimplemented from Kratos::Geometry< TSurfaceContainerPointType::value_type >.

◆ ProjectionPointGlobalToLocalSpace()

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
int Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::ProjectionPointGlobalToLocalSpace ( const CoordinatesArrayType rPointGlobalCoordinates,
CoordinatesArrayType rProjectionPointLocalCoordinates,
const double  Tolerance = std::numeric_limits<double>::epsilon() 
) const
inlineoverridevirtual

Projects a point onto the geometry Projects a certain point on the geometry, or finds the closest point, depending on the provided initial guess. The external point does not necessary lay on the geometry. It shall deal as the interface to the mathematical projection function e.g. the Newton-Raphson. Thus, the breaking criteria does not necessarily mean that it found a point on the surface, if it is really the closest if or not. It shows only if the breaking criteria, defined by the tolerance is reached. This function requires an initial guess, provided by rProjectionPointLocalCoordinates. This function can be a very costly operation.

Parameters
rPointLocalCoordinatesGlobal coordinates of the point to be projected
rProjectionPointLocalCoordinatesProjection point local coordinates. This should be initialized with the initial guess
ToleranceAccepted orthogonal error
Returns
int 0 -> failed 1 -> converged

Reimplemented from Kratos::Geometry< TSurfaceContainerPointType::value_type >.

◆ SpansLocalSpace() [1/2]

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
void Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::SpansLocalSpace ( std::vector< double > &  rSpans,
double  Start,
double  End 
) const
inline

◆ SpansLocalSpace() [2/2]

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
void Kratos::NurbsCurveOnSurfaceGeometry< TWorkingSpaceDimension, TCurveContainerPointType, TSurfaceContainerPointType >::SpansLocalSpace ( std::vector< double > &  rSpans,
IndexType  DirectionIndex = 0 
) const
inlineoverridevirtual

Friends And Related Function Documentation

◆ Serializer

template<int TWorkingSpaceDimension, class TCurveContainerPointType , class TSurfaceContainerPointType >
friend class Serializer
friend

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