Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Core] Remove Dimension #10977

Merged
merged 11 commits into from
Apr 11, 2023
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -597,7 +597,7 @@ endforeach()
message("\n***********************************************************************\n")

message("\nList of upcoming API-breaking and behavior changes:")
message("\t Geometry 'Dimension' deprecation: https://github.com/KratosMultiphysics/Kratos/pull/10445")
message("\t Geometry 'Dimension' removed: https://github.com/KratosMultiphysics/Kratos/pull/10977")
message("\t Geometry old projection methods deprecation: https://github.com/KratosMultiphysics/Kratos/pull/9024")
message("\t Geometry old closest point methods deprecation: https://github.com/KratosMultiphysics/Kratos/pull/9243")
message("\t Model 'CreateModelPart' behavior change (no error thrown if model part exists): https://github.com/KratosMultiphysics/Kratos/pull/9598")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -864,8 +864,8 @@ const GeometryData Line3DN<TPointType>::msGeometryData(


template<class TPointType>
const GeometryDimension Line3DN<TPointType>::msGeometryDimension(
3, 3, 1);
const GeometryDimension Line3DN<TPointType>::msGeometryDimension(3, 1);

} // namespace Kratos.

#endif // KRATOS_LINE_3D_3_H_INCLUDED defined
Original file line number Diff line number Diff line change
Expand Up @@ -47,24 +47,21 @@ void ConnectivitiesData::WriteData(File& rFile, const std::string& rPath, WriteI
rFile.WriteDataSet(rPath + "/Ids", mIds, rInfo);
rFile.WriteDataSet(rPath + "/PropertiesIds", mPropertiesIds, rInfo);
rFile.WriteDataSet(rPath + "/Connectivities", mConnectivities, rInfo);
int ws_dim, dim, num_nodes;
int ws_dim, num_nodes;
if (KratosComponents<ElementType>::Has(mName))
{
const auto& r_geom = KratosComponents<ElementType>::Get(mName).GetGeometry();
ws_dim = r_geom.WorkingSpaceDimension();
dim = r_geom.Dimension();
num_nodes = r_geom.size();
}
else
{
const auto& r_geom = KratosComponents<ConditionType>::Get(mName).GetGeometry();
ws_dim = r_geom.WorkingSpaceDimension();
dim = r_geom.Dimension();
num_nodes = r_geom.size();
}
rFile.WriteAttribute(rPath, "Name", mName);
rFile.WriteAttribute(rPath, "WorkingSpaceDimension", ws_dim);
rFile.WriteAttribute(rPath, "Dimension", dim);
rFile.WriteAttribute(rPath, "NumberOfNodes", num_nodes);
KRATOS_CATCH("");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ namespace Kratos
// Integration
const typename GeometryType::IntegrationPointsArrayType& integration_points = r_geometry.IntegrationPoints();

// Determinant of jacobian
// Determinant of jacobian
// Determine the integration: conservative -> initial; non-conservative -> current
Vector determinant_jacobian_vector(integration_points.size());
const bool integrate_conservative = GetProperties().Has(INTEGRATE_CONSERVATIVE)
Expand All @@ -61,7 +61,7 @@ namespace Kratos
for (IndexType point_number = 0; point_number < integration_points.size(); point_number++)
{
// Differential area, being 1 for points.
const double integration = (r_geometry.Dimension() == 0)
const double integration = (r_geometry.LocalSpaceDimension() == 0)
? 1
: integration_points[point_number].Weight() * determinant_jacobian_vector[point_number];

Expand Down
16 changes: 8 additions & 8 deletions applications/IgaApplication/custom_modelers/iga_modeler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
// _|\_\_| \__,_|\__|\___/ ____/
// Multi-Physics
//
// License: BSD License
// License: BSD License
// Kratos default license: kratos/license.txt
//

Expand Down Expand Up @@ -334,8 +334,8 @@ namespace Kratos
auto p_background_geometry = geom.pGetGeometryPart(GeometryType::BACKGROUND_GEOMETRY_INDEX);

if (rGeometryType == "GeometryCurveNodes") {
KRATOS_DEBUG_ERROR_IF(geom.Dimension() != 1) << "Geometry #" << geom.Id()
<< " needs to have a dimension of 1 for type GeometryCurveNodes. Dimension: " << geom.Dimension()
KRATOS_DEBUG_ERROR_IF(geom.LocalSpaceDimension() != 1) << "Geometry #" << geom.Id()
<< " needs to have a dimension of 1 for type GeometryCurveNodes. LocalSpaceDimension: " << geom.LocalSpaceDimension()
<< ". Geometry" << geom << std::endl;

SizeType number_of_cps = p_background_geometry->size();
Expand All @@ -353,8 +353,8 @@ namespace Kratos
}
}
else if (rGeometryType == "GeometryCurveVariationNodes") {
KRATOS_DEBUG_ERROR_IF(geom.Dimension() != 1) << "Geometry #" << geom.Id()
<< " needs to have a dimension of 1 for type GeometryCurveVariationNodes. Dimension: " << geom.Dimension()
KRATOS_DEBUG_ERROR_IF(geom.LocalSpaceDimension() != 1) << "Geometry #" << geom.Id()
<< " needs to have a dimension of 1 for type GeometryCurveVariationNodes. LocalSpaceDimension: " << geom.LocalSpaceDimension()
<< ". Geometry" << geom << std::endl;

SizeType number_of_cps = p_background_geometry->size();
Expand All @@ -376,9 +376,9 @@ namespace Kratos
}
else if (rGeometryType == "GeometrySurfaceNodes"
|| rGeometryType == "GeometrySurfaceVariationNodes") {
KRATOS_DEBUG_ERROR_IF(geom.Dimension() != 2) << "Geometry #" << geom.Id()
<< " needs to have a dimension of 2 for type " << rGeometryType << ". Dimension: "
<< geom.Dimension() << ". Geometry" << geom << std::endl;
KRATOS_DEBUG_ERROR_IF(geom.LocalSpaceDimension() != 2) << "Geometry #" << geom.Id()
<< " needs to have a dimension of 2 for type " << rGeometryType << ". LocalSpaceDimension: "
<< geom.LocalSpaceDimension() << ". Geometry" << geom << std::endl;

SizeType number_of_cps_u = geom.PointsNumberInDirection(0);
SizeType number_of_cps_v = geom.PointsNumberInDirection(1);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ namespace Kratos
// Check all points are in MPM grid geom bounding box
Node<3> low, high;
rReferenceGeom.BoundingBox(low, high);
const SizeType geom_dim = rReferenceGeom.Dimension();
const SizeType geom_dim = rReferenceGeom.WorkingSpaceDimension();
for (size_t i = 0; i < rPoints.size(); ++i) {
for (size_t dim = 0; dim < geom_dim; ++dim)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ void GeometryUtilities::ExtractBoundaryNodes( std::string const& rBoundarySubMod
// Fill map that counts number of faces for given set of nodes
for (auto& elem_i : mrModelPart.Elements())
{
KRATOS_ERROR_IF(elem_i.GetGeometry().Dimension() < domain_size) << "ExtractBoundaryNodes: This function does only work"
KRATOS_ERROR_IF(elem_i.GetGeometry().WorkingSpaceDimension() < domain_size) << "ExtractBoundaryNodes: This function does only work"
<<" for solid elements in 3D and surface elements in 2D!" << std::endl;

Element::GeometryType::GeometriesArrayType boundaries = elem_i.GetGeometry().GenerateBoundariesEntities();
Expand Down Expand Up @@ -294,7 +294,7 @@ void GeometryUtilities::ComputeVolumeShapeDerivatives(
block_for_each(mrModelPart.Elements(), VolumeDerivativeMethodType(), [&](ModelPart::ElementType& rElement, VolumeDerivativeMethodType& rVolumeDerivativeMethodType){
auto& r_geometry = rElement.GetGeometry();
const auto& geometry_type = r_geometry.GetGeometryType();
const SizeType dimension = r_geometry.Dimension();
const SizeType dimension = r_geometry.WorkingSpaceDimension();

switch (geometry_type) {
case GeometryData::KratosGeometryType::Kratos_Triangle2D3:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ void UniversalFileIO::WriteAllElementsButNoConditions()
ModelPart::ConditionType::GeometryType element_geometry = element_i.GetGeometry();

// Write triangles
if( element_geometry.size()==3 && element_geometry.Dimension()==2 )
if( element_geometry.size()==3 && element_geometry.WorkingSpaceDimension()==2 )
{
const int feDescriptorId = 41; // Plane Stress Linear Triangle
const int numberOfNodes = 3;
Expand All @@ -160,7 +160,7 @@ void UniversalFileIO::WriteAllElementsButNoConditions()
outputFile << std::setw(10) << element_geometry[2].Id() << "\n";
}
// Write quads
else if( element_geometry.size()==4 && element_geometry.Dimension()==2 )
else if( element_geometry.size()==4 && element_geometry.WorkingSpaceDimension()==2 )
{
const int feDescriptorId = 44; // Plane Stress Linear Quadrilateral
const int numberOfNodes = 4;
Expand All @@ -176,7 +176,7 @@ void UniversalFileIO::WriteAllElementsButNoConditions()
outputFile << std::setw(10) << element_geometry[3].Id() << "\n";
}
// Write tetrahedras
else if( element_geometry.size()==4 && element_geometry.Dimension()==3 )
else if( element_geometry.size()==4 && element_geometry.WorkingSpaceDimension()==3 )
{
const int feDescriptorId = 111; // Solid linear tetrahedron
const int numberOfNodes = 4;
Expand Down
3 changes: 1 addition & 2 deletions kratos/geometries/brep_curve.h
Original file line number Diff line number Diff line change
Expand Up @@ -486,8 +486,7 @@ GeometryData BrepCurve<TContainerPointType, TContainerPointEmbeddedType>::msGeom
{}, {}, {});

template<class TContainerPointType, class TContainerPointEmbeddedType>
const GeometryDimension BrepCurve<TContainerPointType, TContainerPointEmbeddedType>::msGeometryDimension(
1, 3, 1);
const GeometryDimension BrepCurve<TContainerPointType, TContainerPointEmbeddedType>::msGeometryDimension(3, 1);

///@}
}// namespace Kratos.
3 changes: 1 addition & 2 deletions kratos/geometries/brep_curve_on_surface.h
Original file line number Diff line number Diff line change
Expand Up @@ -700,8 +700,7 @@ GeometryData BrepCurveOnSurface<TContainerPointType, TContainerPointEmbeddedType
{}, {}, {});

template<class TContainerPointType, class TContainerPointEmbeddedType>
const GeometryDimension BrepCurveOnSurface<TContainerPointType, TContainerPointEmbeddedType>::msGeometryDimension(
1, 3, 1);
const GeometryDimension BrepCurveOnSurface<TContainerPointType, TContainerPointEmbeddedType>::msGeometryDimension(3, 1);

///@}
}// namespace Kratos.
Expand Down
3 changes: 1 addition & 2 deletions kratos/geometries/brep_surface.h
Original file line number Diff line number Diff line change
Expand Up @@ -631,8 +631,7 @@ GeometryData BrepSurface<TContainerPointType, TContainerPointEmbeddedType>::msGe
{}, {}, {});

template<class TContainerPointType, class TContainerPointEmbeddedType>
const GeometryDimension BrepSurface<TContainerPointType, TContainerPointEmbeddedType>::msGeometryDimension(
2, 3, 2);
const GeometryDimension BrepSurface<TContainerPointType, TContainerPointEmbeddedType>::msGeometryDimension(3, 2);

///@}
}// namespace Kratos.
Expand Down
28 changes: 7 additions & 21 deletions kratos/geometries/geometry.h
Original file line number Diff line number Diff line change
Expand Up @@ -1277,19 +1277,6 @@ class Geometry
///@name Informations
///@{

/** Dimension of the geometry for example a triangle2d is a 2
dimensional shape

@return SizeType, dimension of this geometry.
@see WorkingSpaceDimension()
@see LocalSpaceDimension()
*/
KRATOS_DEPRECATED_MESSAGE("'Dimension' is deprecated. Use either 'WorkingSpaceDimension' or 'LocalSpaceDimension' instead.")
inline SizeType Dimension() const
{
return mpGeometryData->Dimension();
}

/** Working space dimension. for example a triangle is a 2
dimensional shape but can be used in 3 dimensional space.

Expand Down Expand Up @@ -1347,8 +1334,8 @@ class Geometry
return 0.0;
}

/**
* @brief This method calculate and return area or surface area of this geometry depending to it's dimension.
/**
* @brief This method calculate and return area or surface area of this geometry depending to it's dimension.
* @details For one dimensional geometry it returns length, for two dimensional it gives area and for three dimensional geometries it gives surface area.
* @return double value contains area or surface area.
* @see Length()
Expand All @@ -1360,8 +1347,8 @@ class Geometry
return 0.0;
}

/**
* @brief This method calculate and return volume of this geometry.
/**
* @brief This method calculate and return volume of this geometry.
* @details For one and two dimensional geometry it returns zero and for three dimensional it gives volume of geometry.
* @return double value contains volume.
* @see Length()
Expand All @@ -1373,8 +1360,8 @@ class Geometry
return 0.0;
}

/**
* @brief This method calculate and return length, area or volume of this geometry depending to it's dimension.
/**
* @brief This method calculate and return length, area or volume of this geometry depending to it's dimension.
* @details For one dimensional geometry it returns its length, for two dimensional it gives area and for three dimensional geometries it gives its volume.
* @return double value contains length, area or volume.
* @see Length()
Expand Down Expand Up @@ -4296,7 +4283,6 @@ inline std::ostream& operator << ( std::ostream& rOStream,
///@}

template<class TPointType>
const GeometryDimension Geometry<TPointType>::msGeometryDimension(
3, 3, 3);
const GeometryDimension Geometry<TPointType>::msGeometryDimension(3, 3);

} // namespace Kratos.
13 changes: 0 additions & 13 deletions kratos/geometries/geometry_data.h
Original file line number Diff line number Diff line change
Expand Up @@ -364,19 +364,6 @@ class GeometryData
///@name Informations
///@{

/** Dimension of the geometry for example a triangle2d is a 2
dimensional shape

@return SizeType, dimension of this geometry.
@see WorkingSpaceDimension()
@see LocalSpaceDimension()
*/
KRATOS_DEPRECATED_MESSAGE("'Dimension' is deprecated. Use either 'WorkingSpaceDimension' or 'LocalSpaceDimension' instead.")
SizeType Dimension() const
{
return mpGeometryDimension->Dimension();
}

/** Working space dimension. for example a triangle is a 2
dimensional shape but can be used in 3 dimensional space.

Expand Down
31 changes: 5 additions & 26 deletions kratos/geometries/geometry_dimension.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,10 @@ class GeometryDimension
for example a triangle is a 2 dimensional shape but
can have 3 dimensional area coordinates l1, l2, l3.
*/
GeometryDimension( SizeType ThisDimension,
SizeType ThisWorkingSpaceDimension,
SizeType ThisLocalSpaceDimension )
: mDimension( ThisDimension )
, mWorkingSpaceDimension( ThisWorkingSpaceDimension )
GeometryDimension(
SizeType ThisWorkingSpaceDimension,
SizeType ThisLocalSpaceDimension )
: mWorkingSpaceDimension( ThisWorkingSpaceDimension )
, mLocalSpaceDimension( ThisLocalSpaceDimension )
{
}
Expand All @@ -81,8 +80,7 @@ class GeometryDimension
Construct this geometry data as a copy of given geometry data.
*/
GeometryDimension( const GeometryDimension& rOther )
: mDimension( rOther.mDimension )
, mWorkingSpaceDimension( rOther.mWorkingSpaceDimension )
: mWorkingSpaceDimension( rOther.mWorkingSpaceDimension )
, mLocalSpaceDimension( rOther.mLocalSpaceDimension )
{
}
Expand All @@ -96,7 +94,6 @@ class GeometryDimension

GeometryDimension& operator=( const GeometryDimension& rOther )
{
mDimension = rOther.mDimension;
mWorkingSpaceDimension = rOther.mWorkingSpaceDimension;
mLocalSpaceDimension = rOther.mLocalSpaceDimension;

Expand All @@ -107,20 +104,6 @@ class GeometryDimension
///@name Informations
///@{

/** Dimension of the geometry for example a triangle2d is a 2
dimensional shape. A line is 1 dimensional shape and
a point 0 dimensional.

@return SizeType, dimension of this geometry.
@see WorkingSpaceDimension()
@see LocalSpaceDimension()
*/
KRATOS_DEPRECATED_MESSAGE("'Dimension' is deprecated. Use either 'WorkingSpaceDimension' or 'LocalSpaceDimension' instead.")
inline SizeType Dimension() const
{
return mDimension;
}

/** Working space dimension. for example a triangle as part
of a surface is a 2 dimensional shape but can be used in
3 dimensional space.
Expand Down Expand Up @@ -176,8 +159,6 @@ class GeometryDimension
///@name Member Variables
///@{

SizeType mDimension;

SizeType mWorkingSpaceDimension;

SizeType mLocalSpaceDimension;
Expand All @@ -190,14 +171,12 @@ class GeometryDimension

virtual void save( Serializer& rSerializer ) const
{
rSerializer.save( "Dimension", mDimension );
rSerializer.save( "WorkingSpaceDimension", mWorkingSpaceDimension );
rSerializer.save( "LocalSpaceDimension", mLocalSpaceDimension );
}

virtual void load( Serializer& rSerializer )
{
rSerializer.load( "Dimension", mDimension );
rSerializer.load( "WorkingSpaceDimension", mWorkingSpaceDimension );
rSerializer.load( "LocalSpaceDimension", mLocalSpaceDimension );
}
Expand Down
7 changes: 3 additions & 4 deletions kratos/geometries/hexahedra_3d_20.h
Original file line number Diff line number Diff line change
Expand Up @@ -441,8 +441,8 @@ template<class TPointType> class Hexahedra3D20 : public Geometry<TPointType>

}

/**
* @brief This method calculate and return volume of this geometry.
/**
* @brief This method calculate and return volume of this geometry.
* @details For one and two dimensional geometry it returns zero and for three dimensional it gives volume of geometry.
* @return double value contains volume.
* @see Length()
Expand Down Expand Up @@ -1606,7 +1606,6 @@ GeometryData Hexahedra3D20<TPointType>::msGeometryData(
);

template<class TPointType> const
GeometryDimension Hexahedra3D20<TPointType>::msGeometryDimension(
3, 3, 3);
GeometryDimension Hexahedra3D20<TPointType>::msGeometryDimension(3, 3);

}// namespace Kratos.
Loading