diff --git a/ProcessLib/BoundaryCondition/Python/BHEInflowPythonBoundaryCondition.h b/ProcessLib/BoundaryCondition/Python/BHEInflowPythonBoundaryCondition.h index f181eaf7e5dee061158b4bf09397ee851fd458df..ef3840bf86cd096824636d49ca52f5559374ecd7 100644 --- a/ProcessLib/BoundaryCondition/Python/BHEInflowPythonBoundaryCondition.h +++ b/ProcessLib/BoundaryCondition/Python/BHEInflowPythonBoundaryCondition.h @@ -29,16 +29,16 @@ namespace ProcessLib { //! A boundary condition whose values are computed by a Python script. -template <typename BHEUpdateCallback> +template <typename BHEType> class BHEInflowPythonBoundaryCondition final : public BoundaryCondition { public: BHEInflowPythonBoundaryCondition( std::pair<GlobalIndexType, GlobalIndexType>&& in_out_global_indices, - BHEUpdateCallback bhe_update_callback, + BHEType& bhe, BHEInflowPythonBoundaryConditionPythonSideInterface& py_bc_object) : _in_out_global_indices(std::move(in_out_global_indices)), - _bhe_update_callback(bhe_update_callback), + _bhe(bhe), _py_bc_object(py_bc_object) { const auto g_idx_T_out = in_out_global_indices.second; @@ -48,7 +48,7 @@ public: } void getEssentialBCValues( - const double t, const GlobalVector& x, + const double t, const GlobalVector& /* x */, NumLib::IndexValueVector<GlobalIndexType>& bc_values) const override { bc_values.ids.resize(1); @@ -86,15 +86,15 @@ public: private: std::pair<GlobalIndexType, GlobalIndexType> const _in_out_global_indices; - BHEUpdateCallback _bhe_update_callback; + BHEType& _bhe; BHEInflowPythonBoundaryConditionPythonSideInterface& _py_bc_object; }; -template <typename BHEUpdateCallback> -std::unique_ptr<BHEInflowPythonBoundaryCondition<BHEUpdateCallback>> +template <typename BHEType> +std::unique_ptr<BHEInflowPythonBoundaryCondition<BHEType>> createBHEInflowPythonBoundaryCondition( std::pair<GlobalIndexType, GlobalIndexType>&& in_out_global_indices, - BHEUpdateCallback bhe_update_callback, + BHEType& bhe, BHEInflowPythonBoundaryConditionPythonSideInterface& py_bc_object) { @@ -118,8 +118,7 @@ createBHEInflowPythonBoundaryCondition( "behaviour is not implemented."); } #endif // USE_PETSC - return std::make_unique< - BHEInflowPythonBoundaryCondition<BHEUpdateCallback>>( - std::move(in_out_global_indices), bhe_update_callback, py_bc_object); + return std::make_unique<BHEInflowPythonBoundaryCondition<BHEType>>( + std::move(in_out_global_indices), bhe, py_bc_object); } } // namespace ProcessLib diff --git a/ProcessLib/BoundaryCondition/Python/BHEInflowPythonBoundaryConditionModule.cpp b/ProcessLib/BoundaryCondition/Python/BHEInflowPythonBoundaryConditionModule.cpp index 08de918d1b2db431d740b93e5ac257472f5825fb..045d40afe3947f8a1d37a6e05014f9b0bdfb30c0 100644 --- a/ProcessLib/BoundaryCondition/Python/BHEInflowPythonBoundaryConditionModule.cpp +++ b/ProcessLib/BoundaryCondition/Python/BHEInflowPythonBoundaryConditionModule.cpp @@ -1,4 +1,5 @@ /** + * \file * \copyright * Copyright (c) 2012-2019, OpenGeoSys Community (http://www.opengeosys.org) * Distributed under a Modified BSD License. diff --git a/ProcessLib/BoundaryCondition/Python/BHEInflowPythonBoundaryConditionModule.h b/ProcessLib/BoundaryCondition/Python/BHEInflowPythonBoundaryConditionModule.h index d91fa1304272541e2a84957e7fb3b953f94eb5e1..8e02f944b5909f3789e981864c16f428abbb6ae8 100644 --- a/ProcessLib/BoundaryCondition/Python/BHEInflowPythonBoundaryConditionModule.h +++ b/ProcessLib/BoundaryCondition/Python/BHEInflowPythonBoundaryConditionModule.h @@ -1,4 +1,5 @@ /** + * \file * \copyright * Copyright (c) 2012-2019, OpenGeoSys Community (http://www.opengeosys.org) * Distributed under a Modified BSD License. diff --git a/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp b/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp index e6ccd800dfae1c6d93bff29e18d925215c6026c7..60df52b9f778b08db97830b681fb849c7ebac497 100644 --- a/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp +++ b/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp @@ -12,6 +12,8 @@ #include <cassert> +#include "BoundaryConditions/BHEBottomDirichletBoundaryCondition.h" +#include "BoundaryConditions/BHEInflowDirichletBoundaryCondition.h" #include "ProcessLib/BoundaryCondition/BHEBottomDirichletBoundaryCondition.h" #include "ProcessLib/BoundaryCondition/BHEInflowDirichletBoundaryCondition.h" #include "ProcessLib/BoundaryCondition/Python/BHEInflowPythonBoundaryCondition.h" @@ -306,10 +308,7 @@ void HeatTransportBHEProcess::createBHEBoundaryConditionTopBottom( ProcessLib::createBHEInflowPythonBoundaryCondition( get_global_bhe_bc_indices(bc_top_node_id, in_out_component_id), - [&bhe](double const T, double const t) { - return bhe.updateFlowRateAndTemperature(T, - t); - }, + bhe, *(_process_data.py_bc_object))); } else @@ -328,7 +327,7 @@ void HeatTransportBHEProcess::createBHEBoundaryConditionTopBottom( { // Top, inflow, normal case bcs.addBoundaryCondition( - ProcessLib::createBHEInflowDirichletBoundaryCondition( + createBHEInflowDirichletBoundaryCondition( get_global_bhe_bc_indices(bc_top_node_id, in_out_component_id), [&bhe](double const T, double const t) { @@ -337,7 +336,7 @@ void HeatTransportBHEProcess::createBHEBoundaryConditionTopBottom( } // Bottom, outflow, all cases bcs.addBoundaryCondition( - ProcessLib::createBHEBottomDirichletBoundaryCondition( + createBHEBottomDirichletBoundaryCondition( get_global_bhe_bc_indices(bc_bottom_node_id, in_out_component_id))); }