Skip to content

Commit

Permalink
Merge pull request #10977 from KratosMultiphysics/all/get-rid-of-Dime…
Browse files Browse the repository at this point in the history
…nsion

[Core] Remove Dimension
  • Loading branch information
rubenzorrilla committed Apr 11, 2023
2 parents 6718571 + 8de741f commit 0fb273c
Show file tree
Hide file tree
Showing 65 changed files with 210 additions and 329 deletions.
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

0 comments on commit 0fb273c

Please sign in to comment.