diff --git a/ProcessLib/NeumannBcConfig.h b/ProcessLib/NeumannBcConfig.h index c69ff159a36f9f523c57ad87c51990ad64ac2184..e5ffe9e99cca68caac799087f7985176b4509065 100644 --- a/ProcessLib/NeumannBcConfig.h +++ b/ProcessLib/NeumannBcConfig.h @@ -28,14 +28,14 @@ namespace ProcessLib class BoundaryConditionConfig { public: - BoundaryConditionConfig(GeoLib::GeoObject const* const geometry) + BoundaryConditionConfig(GeoLib::GeoObject const& geometry) : _geometry(geometry) { } virtual ~BoundaryConditionConfig() = default; protected: - GeoLib::GeoObject const* const _geometry; + GeoLib::GeoObject const& _geometry; }; @@ -43,8 +43,8 @@ protected: class NeumannBcConfig : public BoundaryConditionConfig { public: - NeumannBcConfig(GeoLib::GeoObject const* const geometry, - BaseLib::ConfigTree const& config) + NeumannBcConfig(GeoLib::GeoObject const& geometry, + BaseLib::ConfigTree const& config) : BoundaryConditionConfig(geometry) { DBUG("Constructing NeumannBcConfig from config."); @@ -71,7 +71,8 @@ public: /// The elements are appended to the \c elements vector. void initialize(MeshGeoToolsLib::BoundaryElementsSearcher& searcher) { - std::vector<MeshLib::Element*> elems = searcher.getBoundaryElements(*_geometry); + std::vector<MeshLib::Element*> elems = + searcher.getBoundaryElements(_geometry); // deep copy because the searcher destroys the elements. std::transform(elems.cbegin(), elems.cend(), diff --git a/ProcessLib/ProcessVariable.cpp b/ProcessLib/ProcessVariable.cpp index 52a39d24565067749791ab346615c3755f5a1d59..4f76710887868658242182d030157e148c4251d6 100644 --- a/ProcessLib/ProcessVariable.cpp +++ b/ProcessLib/ProcessVariable.cpp @@ -73,11 +73,14 @@ ProcessVariable::ProcessVariable(BaseLib::ConfigTree const& config, //! \ogs_file_param{boundary_condition__geometry} bc_config.getConfigParameter<std::string>("geometry"); - GeoLib::GeoObject const* const geometry = + GeoLib::GeoObject const* const geometry_ptr = geometries.getGeoObject(geometrical_set_name, geometry_name); + assert(geometry_ptr != nullptr); + GeoLib::GeoObject const& geometry = *geometry_ptr; + DBUG( "Found geometry type \"%s\"", - GeoLib::convertGeoTypeToString(geometry->getGeoType()).c_str()); + GeoLib::convertGeoTypeToString(geometry.getGeoType()).c_str()); // Construct type dependent boundary condition //! \ogs_file_param{boundary_condition__type} diff --git a/ProcessLib/UniformDirichletBoundaryCondition.cpp b/ProcessLib/UniformDirichletBoundaryCondition.cpp index a3503ce327d4317f6b8a7c52d0b7d5ec04ababfd..686a7ce249103fdc9246b40cce8b3dccf7c5ee96 100644 --- a/ProcessLib/UniformDirichletBoundaryCondition.cpp +++ b/ProcessLib/UniformDirichletBoundaryCondition.cpp @@ -17,7 +17,7 @@ namespace ProcessLib { UniformDirichletBoundaryCondition::UniformDirichletBoundaryCondition( - GeoLib::GeoObject const* const geometry, BaseLib::ConfigTree const& config) + GeoLib::GeoObject const& geometry, BaseLib::ConfigTree const& config) : _geometry(geometry) { DBUG("Constructing UniformDirichletBoundaryCondition from config."); @@ -30,7 +30,7 @@ UniformDirichletBoundaryCondition::UniformDirichletBoundaryCondition( } UniformDirichletBoundaryCondition::UniformDirichletBoundaryCondition( - GeoLib::GeoObject const* const geometry, double value) + GeoLib::GeoObject const& geometry, double value) : _value(value), _geometry(geometry) { DBUG("Constructed UniformDirichletBoundaryCondition using value %g", @@ -51,7 +51,7 @@ void UniformDirichletBoundaryCondition::initialize( { // Find nodes' ids on the given mesh on which this boundary condition // is defined. - std::vector<std::size_t> ids = searcher.getMeshNodeIDs(*_geometry); + std::vector<std::size_t> ids = searcher.getMeshNodeIDs(_geometry); // convert mesh node ids to global index for the given component bc.ids.reserve(bc.ids.size() + ids.size()); diff --git a/ProcessLib/UniformDirichletBoundaryCondition.h b/ProcessLib/UniformDirichletBoundaryCondition.h index 30ef1fbc40f393fec2529c843c123f2a1d2c42d1..fa916628a2078f77b0d6594bc2018f200188e836 100644 --- a/ProcessLib/UniformDirichletBoundaryCondition.h +++ b/ProcessLib/UniformDirichletBoundaryCondition.h @@ -31,10 +31,10 @@ namespace ProcessLib class UniformDirichletBoundaryCondition { public: - UniformDirichletBoundaryCondition(GeoLib::GeoObject const* const geometry, + UniformDirichletBoundaryCondition(GeoLib::GeoObject const& geometry, BaseLib::ConfigTree const& config); - UniformDirichletBoundaryCondition(GeoLib::GeoObject const* const geometry, + UniformDirichletBoundaryCondition(GeoLib::GeoObject const& geometry, double value); /// Initialize Dirichlet type boundary conditions. @@ -50,7 +50,7 @@ public: private: double _value; - GeoLib::GeoObject const* const _geometry; + GeoLib::GeoObject const& _geometry; }; } // namespace ProcessLib