swh:1:snp:f521c49ab17ef7db6ec70b2430e1ed203f50383f
Raw File
Tip revision: c6a64ea85d5262b1c665e348456c867bb05b244f authored by Dmitri Naumov on 18 March 2021, 11:20:21 UTC
[MaL] Avoid MSVC C4180 warnings.
Tip revision: c6a64ea
CheckMaterialSpatialDistributionMap.h
/**
 * \file
 * \copyright
 * Copyright (c) 2012-2021, OpenGeoSys Community (http://www.opengeosys.org)
 *            Distributed under a Modified BSD License.
 *              See accompanying file LICENSE.txt or
 *              http://www.opengeosys.org/project/license
 *
 */

#include "MaterialSpatialDistributionMap.h"
#include "Medium.h"
#include "MeshLib/Mesh.h"
#include "MeshLib/Elements/Element.h"
#include "Phase.h"

namespace MaterialPropertyLib
{
template <typename ContainerMedium,
          typename ContainerSolid,
          typename ContainerLiquid>
void checkMaterialSpatialDistributionMap(
    MeshLib::Mesh const& mesh,
    MaterialPropertyLib::MaterialSpatialDistributionMap const& media_map,
    ContainerMedium const& required_properties_medium,
    ContainerSolid const& required_properties_solid_phase,
    ContainerLiquid const& required_properties_liquid_phase)
{
    for (auto const& element : mesh.getElements())
    {
        auto const element_id = element->getID();

        auto const& medium = *media_map.getMedium(element_id);
        if (!required_properties_medium.empty())
        {
            MaterialPropertyLib::checkRequiredProperties(
                medium, required_properties_medium);
        }
        if (!required_properties_liquid_phase.empty())
        {
            MaterialPropertyLib::checkRequiredProperties(
                medium.phase("AqueousLiquid"),
                required_properties_liquid_phase);
        }
        if (!required_properties_solid_phase.empty())
        {
            MaterialPropertyLib::checkRequiredProperties(
                medium.phase("Solid"), required_properties_solid_phase);
        }
    }
}

}  // namespace MaterialPropertyLib
back to top