Skip to content

Commit

Permalink
revert element changes
Browse files Browse the repository at this point in the history
  • Loading branch information
sunethwarna committed Mar 18, 2024
1 parent f10d1af commit d875076
Show file tree
Hide file tree
Showing 7 changed files with 29 additions and 54 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ class HelmholtzSolidDataContainer

static constexpr IndexType NumberOfVariables = (TDataDimension == 1) ? 1 : TDim;

static constexpr auto TargetVariablesList = HelmholtzGenericVariableData<NumberOfVariables>::TargetVariablesList;
static constexpr auto TargetVariablesList = HelmholtzVariableData<NumberOfVariables>::TargetVariablesList;

static constexpr auto SourceVariablesList = HelmholtzGenericVariableData<NumberOfVariables>::SourceVariablesList;
static constexpr auto SourceVariablesList = HelmholtzVariableData<NumberOfVariables>::SourceVariablesList;

///@}
///@name Public classes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@ class HelmholtzSolidShapeDataContainer

static constexpr IndexType NumberOfVariables = TDim;

static constexpr auto TargetVariablesList = HelmholtzShapeVariableData<NumberOfVariables>::TargetVariablesList;
static constexpr auto TargetVariablesList = HelmholtzVariableData<NumberOfVariables>::TargetVariablesList;

static constexpr auto SourceVariablesList = HelmholtzShapeVariableData<NumberOfVariables>::SourceVariablesList;
static constexpr auto SourceVariablesList = HelmholtzVariableData<NumberOfVariables>::SourceVariablesList;

///@}
///@name Public classes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@

namespace Kratos {

template <unsigned int TDim, unsigned int TNumNodes, unsigned int TDataDimension, template<unsigned int> class TVariableDataType>
template <unsigned int TDim, unsigned int TNumNodes, unsigned int TDataDimension>
class HelmholtzSurfaceDataContainer
{
public:
Expand All @@ -46,9 +46,9 @@ class HelmholtzSurfaceDataContainer

static constexpr IndexType NumberOfVariables = (TDataDimension == 1) ? 1 : TDim;

static constexpr auto TargetVariablesList = TVariableDataType<NumberOfVariables>::TargetVariablesList;
static constexpr auto TargetVariablesList = HelmholtzVariableData<NumberOfVariables>::TargetVariablesList;

static constexpr auto SourceVariablesList = TVariableDataType<NumberOfVariables>::SourceVariablesList;
static constexpr auto SourceVariablesList = HelmholtzVariableData<NumberOfVariables>::SourceVariablesList;

///@}
///@name Public classes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,47 +19,31 @@
// External includes

// Project includes
#include "includes/mesh_moving_variables.h"

// Application includes
#include "optimization_application_variables.h"

namespace Kratos {

template <unsigned int TDataDimension>
struct HelmholtzGenericVariableData;

template <unsigned int TDataDimension>
struct HelmholtzShapeVariableData;
struct HelmholtzVariableData;

template<>
struct HelmholtzGenericVariableData<1> {
struct HelmholtzVariableData<1> {
static constexpr auto TargetVariablesList = std::array<const Variable<double>*, 1>{&HELMHOLTZ_SCALAR};
static constexpr auto SourceVariablesList = std::array<const Variable<double>*, 1>{&HELMHOLTZ_SCALAR_SOURCE};
};

template<>
struct HelmholtzGenericVariableData<2> {
struct HelmholtzVariableData<2> {
static constexpr auto TargetVariablesList = std::array<const Variable<double>*, 2>{&HELMHOLTZ_VECTOR_X, &HELMHOLTZ_VECTOR_Y};
static constexpr auto SourceVariablesList = std::array<const Variable<double>*, 2>{&HELMHOLTZ_VECTOR_SOURCE_X, &HELMHOLTZ_VECTOR_SOURCE_Y};
};

template<>
struct HelmholtzGenericVariableData<3> {
struct HelmholtzVariableData<3> {
static constexpr auto TargetVariablesList = std::array<const Variable<double>*, 3>{&HELMHOLTZ_VECTOR_X, &HELMHOLTZ_VECTOR_Y, &HELMHOLTZ_VECTOR_Z};
static constexpr auto SourceVariablesList = std::array<const Variable<double>*, 3>{&HELMHOLTZ_VECTOR_SOURCE_X, &HELMHOLTZ_VECTOR_SOURCE_Y, &HELMHOLTZ_VECTOR_SOURCE_Z};
};

template<>
struct HelmholtzShapeVariableData<2> {
static constexpr auto TargetVariablesList = std::array<const Variable<double>*, 2>{&MESH_DISPLACEMENT_X, &MESH_DISPLACEMENT_Y};
static constexpr auto SourceVariablesList = std::array<const Variable<double>*, 2>{&HELMHOLTZ_VECTOR_SOURCE_X, &HELMHOLTZ_VECTOR_SOURCE_Y};
};

template<>
struct HelmholtzShapeVariableData<3> {
static constexpr auto TargetVariablesList = std::array<const Variable<double>*, 3>{&MESH_DISPLACEMENT_X, &MESH_DISPLACEMENT_Y, &MESH_DISPLACEMENT_Z};
static constexpr auto SourceVariablesList = std::array<const Variable<double>*, 3>{&HELMHOLTZ_VECTOR_SOURCE_X, &HELMHOLTZ_VECTOR_SOURCE_Y, &HELMHOLTZ_VECTOR_SOURCE_Z};
};

} // namespace Kratos
Original file line number Diff line number Diff line change
Expand Up @@ -447,21 +447,18 @@ void HelmholtzElement<TDataContainer>::CalculateStiffnessMatrix(
}

// template instantiations
template class KRATOS_API(OPTIMIZATION_APPLICATION) HelmholtzElement<HelmholtzSurfaceDataContainer<3, 3, 1, HelmholtzGenericVariableData>>;
template class KRATOS_API(OPTIMIZATION_APPLICATION) HelmholtzElement<HelmholtzSurfaceDataContainer<3, 4, 1, HelmholtzGenericVariableData>>;
template class KRATOS_API(OPTIMIZATION_APPLICATION) HelmholtzElement<HelmholtzSurfaceDataContainer<3, 3, 1>>;
template class KRATOS_API(OPTIMIZATION_APPLICATION) HelmholtzElement<HelmholtzSurfaceDataContainer<3, 4, 1>>;

template class KRATOS_API(OPTIMIZATION_APPLICATION) HelmholtzElement<HelmholtzSurfaceDataContainer<3, 3, 3, HelmholtzGenericVariableData>>;
template class KRATOS_API(OPTIMIZATION_APPLICATION) HelmholtzElement<HelmholtzSurfaceDataContainer<3, 4, 3, HelmholtzGenericVariableData>>;
template class KRATOS_API(OPTIMIZATION_APPLICATION) HelmholtzElement<HelmholtzSurfaceDataContainer<3, 3, 3>>;
template class KRATOS_API(OPTIMIZATION_APPLICATION) HelmholtzElement<HelmholtzSurfaceDataContainer<3, 4, 3>>;

template class KRATOS_API(OPTIMIZATION_APPLICATION) HelmholtzElement<HelmholtzSolidDataContainer<3, 4, 1>>;
template class KRATOS_API(OPTIMIZATION_APPLICATION) HelmholtzElement<HelmholtzSolidDataContainer<3, 8, 1>>;

template class KRATOS_API(OPTIMIZATION_APPLICATION) HelmholtzElement<HelmholtzSolidDataContainer<3, 4, 3>>;
template class KRATOS_API(OPTIMIZATION_APPLICATION) HelmholtzElement<HelmholtzSolidDataContainer<3, 8, 3>>;

template class KRATOS_API(OPTIMIZATION_APPLICATION) HelmholtzElement<HelmholtzSurfaceDataContainer<3, 3, 3, HelmholtzShapeVariableData>>;
template class KRATOS_API(OPTIMIZATION_APPLICATION) HelmholtzElement<HelmholtzSurfaceDataContainer<3, 4, 3, HelmholtzShapeVariableData>>;

template class KRATOS_API(OPTIMIZATION_APPLICATION) HelmholtzElement<HelmholtzSolidShapeDataContainer<3, 4>>;
template class KRATOS_API(OPTIMIZATION_APPLICATION) HelmholtzElement<HelmholtzSolidShapeDataContainer<3, 8>>;

Expand Down
20 changes: 8 additions & 12 deletions applications/OptimizationApplication/optimization_application.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,14 @@ namespace Kratos
mHelmholtzBulkTopology3D4N(0, Element::GeometryType::Pointer(new Tetrahedra3D4<Node>(Element::GeometryType::PointsArrayType(4)))),
mAdjointSmallDisplacementElement3D4N(0, Element::GeometryType::Pointer(new Tetrahedra3D4<Node>(Element::GeometryType::PointsArrayType(4))),Element::Pointer() ),
// Helmholtz elements
mHelmholtzScalarSurfaceElement3D3N(0, Element::GeometryType::Pointer(new Triangle3D3<NodeType >(Element::GeometryType::PointsArrayType(3)))),
mHelmholtzScalarSurfaceElement3D4N(0, Element::GeometryType::Pointer(new Quadrilateral3D4<NodeType >(Element::GeometryType::PointsArrayType(4)))),
mHelmholtzSurfaceElement3D3N(0, Element::GeometryType::Pointer(new Triangle3D3<NodeType >(Element::GeometryType::PointsArrayType(3)))),
mHelmholtzSurfaceElement3D4N(0, Element::GeometryType::Pointer(new Quadrilateral3D4<NodeType >(Element::GeometryType::PointsArrayType(4)))),
mHelmholtzVectorSurfaceElement3D3N(0, Element::GeometryType::Pointer(new Triangle3D3<NodeType >(Element::GeometryType::PointsArrayType(3)))),
mHelmholtzVectorSurfaceElement3D4N(0, Element::GeometryType::Pointer(new Quadrilateral3D4<NodeType >(Element::GeometryType::PointsArrayType(4)))),
mHelmholtzScalarSolidElement3D4N(0, Element::GeometryType::Pointer(new Tetrahedra3D4<Node>(Element::GeometryType::PointsArrayType(4)))),
mHelmholtzScalarSolidElement3D8N(0, Element::GeometryType::Pointer(new Hexahedra3D8<Node>(Element::GeometryType::PointsArrayType(8)))),
mHelmholtzSolidElement3D4N(0, Element::GeometryType::Pointer(new Tetrahedra3D4<Node>(Element::GeometryType::PointsArrayType(4)))),
mHelmholtzSolidElement3D8N(0, Element::GeometryType::Pointer(new Hexahedra3D8<Node>(Element::GeometryType::PointsArrayType(8)))),
mHelmholtzVectorSolidElement3D4N(0, Element::GeometryType::Pointer(new Tetrahedra3D4<Node>(Element::GeometryType::PointsArrayType(4)))),
mHelmholtzVectorSolidElement3D8N(0, Element::GeometryType::Pointer(new Hexahedra3D8<Node>(Element::GeometryType::PointsArrayType(8)))),
mHelmholtzSurfaceShapeElement3D3N(0, Element::GeometryType::Pointer(new Triangle3D3<NodeType >(Element::GeometryType::PointsArrayType(3)))),
mHelmholtzSurfaceShapeElement3D4N(0, Element::GeometryType::Pointer(new Quadrilateral3D4<NodeType >(Element::GeometryType::PointsArrayType(4)))),
mHelmholtzSolidShapeElement3D4N(0, Element::GeometryType::Pointer(new Tetrahedra3D4<Node>(Element::GeometryType::PointsArrayType(4)))),
mHelmholtzSolidShapeElement3D8N(0, Element::GeometryType::Pointer(new Hexahedra3D8<Node>(Element::GeometryType::PointsArrayType(8)))),
/* CONDITIONS */
Expand Down Expand Up @@ -221,16 +219,14 @@ namespace Kratos
KRATOS_REGISTER_ELEMENT("HelmholtzBulkTopology3D4N", mHelmholtzBulkTopology3D4N);

// Register the helmholtz elements
KRATOS_REGISTER_ELEMENT("HelmholtzScalarSurfaceElement3D3N", mHelmholtzScalarSurfaceElement3D3N);
KRATOS_REGISTER_ELEMENT("HelmholtzScalarSurfaceElement3D4N", mHelmholtzScalarSurfaceElement3D4N);
KRATOS_REGISTER_ELEMENT("HelmholtzSurfaceElement3D3N", mHelmholtzSurfaceElement3D3N);
KRATOS_REGISTER_ELEMENT("HelmholtzSurfaceElement3D4N", mHelmholtzSurfaceElement3D4N);
KRATOS_REGISTER_ELEMENT("HelmholtzVectorSurfaceElement3D3N", mHelmholtzVectorSurfaceElement3D3N);
KRATOS_REGISTER_ELEMENT("HelmholtzVectorSurfaceElement3D4N", mHelmholtzVectorSurfaceElement3D4N);
KRATOS_REGISTER_ELEMENT("HelmholtzScalarSolidElement3D4N", mHelmholtzScalarSolidElement3D4N);
KRATOS_REGISTER_ELEMENT("HelmholtzScalarSolidElement3D8N", mHelmholtzScalarSolidElement3D8N);
KRATOS_REGISTER_ELEMENT("HelmholtzSolidElement3D4N", mHelmholtzSolidElement3D4N);
KRATOS_REGISTER_ELEMENT("HelmholtzSolidElement3D8N", mHelmholtzSolidElement3D8N);
KRATOS_REGISTER_ELEMENT("HelmholtzVectorSolidElement3D4N", mHelmholtzVectorSolidElement3D4N);
KRATOS_REGISTER_ELEMENT("HelmholtzVectorSolidElement3D8N", mHelmholtzVectorSolidElement3D8N);
KRATOS_REGISTER_ELEMENT("HelmholtzSurfaceShapeElement3D3N", mHelmholtzSurfaceShapeElement3D3N);
KRATOS_REGISTER_ELEMENT("HelmholtzSurfaceShapeElement3D4N", mHelmholtzSurfaceShapeElement3D4N);
KRATOS_REGISTER_ELEMENT("HelmholtzSolidShapeElement3D4N", mHelmholtzSolidShapeElement3D4N);
KRATOS_REGISTER_ELEMENT("HelmholtzSolidShapeElement3D8N", mHelmholtzSolidShapeElement3D8N);

Expand Down
14 changes: 6 additions & 8 deletions applications/OptimizationApplication/optimization_application.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,18 +130,16 @@ namespace Kratos
const AdjointSmallDisplacementElement mAdjointSmallDisplacementElement3D4N;

// Helmholtz elements
const HelmholtzElement<HelmholtzSurfaceDataContainer<3, 3, 1, HelmholtzGenericVariableData>> mHelmholtzScalarSurfaceElement3D3N;
const HelmholtzElement<HelmholtzSurfaceDataContainer<3, 4, 1, HelmholtzGenericVariableData>> mHelmholtzScalarSurfaceElement3D4N;
const HelmholtzElement<HelmholtzSurfaceDataContainer<3, 3, 3, HelmholtzGenericVariableData>> mHelmholtzVectorSurfaceElement3D3N;
const HelmholtzElement<HelmholtzSurfaceDataContainer<3, 4, 3, HelmholtzGenericVariableData>> mHelmholtzVectorSurfaceElement3D4N;
const HelmholtzElement<HelmholtzSurfaceDataContainer<3, 3, 1>> mHelmholtzSurfaceElement3D3N;
const HelmholtzElement<HelmholtzSurfaceDataContainer<3, 4, 1>> mHelmholtzSurfaceElement3D4N;
const HelmholtzElement<HelmholtzSurfaceDataContainer<3, 3, 3>> mHelmholtzVectorSurfaceElement3D3N;
const HelmholtzElement<HelmholtzSurfaceDataContainer<3, 4, 3>> mHelmholtzVectorSurfaceElement3D4N;

const HelmholtzElement<HelmholtzSolidDataContainer<3, 4, 1>> mHelmholtzScalarSolidElement3D4N;
const HelmholtzElement<HelmholtzSolidDataContainer<3, 8, 1>> mHelmholtzScalarSolidElement3D8N;
const HelmholtzElement<HelmholtzSolidDataContainer<3, 4, 1>> mHelmholtzSolidElement3D4N;
const HelmholtzElement<HelmholtzSolidDataContainer<3, 8, 1>> mHelmholtzSolidElement3D8N;
const HelmholtzElement<HelmholtzSolidDataContainer<3, 4, 3>> mHelmholtzVectorSolidElement3D4N;
const HelmholtzElement<HelmholtzSolidDataContainer<3, 8, 3>> mHelmholtzVectorSolidElement3D8N;

const HelmholtzElement<HelmholtzSurfaceDataContainer<3, 3, 3, HelmholtzShapeVariableData>> mHelmholtzSurfaceShapeElement3D3N;
const HelmholtzElement<HelmholtzSurfaceDataContainer<3, 4, 3, HelmholtzShapeVariableData>> mHelmholtzSurfaceShapeElement3D4N;
const HelmholtzElement<HelmholtzSolidShapeDataContainer<3, 4>> mHelmholtzSolidShapeElement3D4N;
const HelmholtzElement<HelmholtzSolidShapeDataContainer<3, 8>> mHelmholtzSolidShapeElement3D8N;

Expand Down

0 comments on commit d875076

Please sign in to comment.