Skip to content

Commit

Permalink
[LF] Check medium properties using medium map only instead of
Browse files Browse the repository at this point in the history
 using both medium map and mesh elements.
  • Loading branch information
wenqing committed Oct 8, 2024
1 parent 11bee9b commit 8b55aa8
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 13 deletions.
3 changes: 3 additions & 0 deletions MaterialLib/MPL/MaterialSpatialDistributionMap.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

#include <map>
#include <memory>
#include <range/v3/view.hpp>
#include <vector>

namespace MeshLib
Expand All @@ -35,6 +36,8 @@ class MaterialSpatialDistributionMap
{
}

auto media() const { return media_ | ranges::views::values; }

Medium* getMedium(std::size_t element_id);
Medium const* getMedium(std::size_t element_id) const;
void checkElementHasMedium(std::size_t const element_id) const;
Expand Down
24 changes: 11 additions & 13 deletions ProcessLib/LiquidFlow/CreateLiquidFlowProcess.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,9 @@ void checkMPLProperties(

// Collect phases of all elements...
auto all_phases =
mesh.getElements() | MeshLib::views::ids |
ranges::views::transform(
[&](auto const& element_id)
{ return &fluidPhase(*media_map.getMedium(element_id)); }) |
media_map.media() |
ranges::views::transform([&](auto const& medium)
{ return &fluidPhase(*medium); }) |
ranges::to_vector;

assert(!all_phases.empty());
Expand Down Expand Up @@ -76,28 +75,27 @@ void checkMPLProperties(
// Check Constant-type density.
if (is_equation_type_volume)
{
for (auto const& element_id : mesh.getElements() | MeshLib::views::ids)
for (auto const& medium : media_map.media())
{
auto const& medium = *media_map.getMedium(element_id);
// auto const& medium = *media_map.getMedium(element_id);
auto const& fluid_phase_density =
fluidPhase(medium)[MaterialPropertyLib::PropertyType::density];
fluidPhase(*medium)[MaterialPropertyLib::PropertyType::density];
if (typeid(fluid_phase_density) !=
typeid(MaterialPropertyLib::Constant))
{
OGS_FATAL(
"Since `equation_balance_type` is set to `volume`,the "
"phase density type must be `Constant`. Note: by "
"default, "
"`equation_balance_type` is set to `volume`.");
"default, `equation_balance_type` is set to `volume`.");
}
}
}

for (auto const& element_id : mesh.getElements() | MeshLib::views::ids)
for (auto const& medium : media_map.media())
{
auto const& medium = *media_map.getMedium(element_id);
checkRequiredProperties(medium, required_medium_properties);
checkRequiredProperties(fluidPhase(medium), required_liquid_properties);
checkRequiredProperties(*medium, required_medium_properties);
checkRequiredProperties(fluidPhase(*medium),
required_liquid_properties);
}
DBUG("Media properties verified.");
}
Expand Down

0 comments on commit 8b55aa8

Please sign in to comment.