Skip to content
Snippets Groups Projects
Commit 1be4290d authored by Christoph Lehmann's avatar Christoph Lehmann
Browse files

[PL] Moved porosity initialization

parent 9d547b64
No related branches found
No related tags found
No related merge requests found
......@@ -50,6 +50,44 @@ struct LocalAssemblerInterface : public ProcessLib::LocalAssemblerInterface,
{
material_states_.emplace_back(solid_material_);
}
ParameterLib::SpatialPosition x_position;
x_position.setElementID(e.getID());
auto const& medium = process_data_.media_map->getMedium(e.getID());
for (unsigned ip = 0; ip < n_integration_points; ip++)
{
namespace MPL = MaterialPropertyLib;
x_position.setIntegrationPoint(ip);
auto& current_state = current_states_[ip];
// Initial porosity. Could be read from integration point data or
// mesh.
current_state.poro_data.phi =
medium->property(MPL::porosity)
.template initialValue<double>(
x_position,
std::numeric_limits<
double>::quiet_NaN() /* t independent */);
if (medium->hasProperty(MPL::PropertyType::transport_porosity))
{
current_state.transport_poro_data.phi =
medium->property(MPL::transport_porosity)
.template initialValue<double>(
x_position,
std::numeric_limits<
double>::quiet_NaN() /* t independent */);
}
else
{
current_state.transport_poro_data.phi =
current_state.poro_data.phi;
}
}
}
std::size_t setIPDataInitialConditions(std::string const& name,
......
......@@ -62,8 +62,6 @@ ThermoRichardsMechanicsLocalAssembler<ShapeFunctionDisplacement, ShapeFunction,
DisplacementDim>(e, is_axially_symmetric,
integration_method);
auto const& medium = this->process_data_.media_map->getMedium(e.getID());
ParameterLib::SpatialPosition x_position;
x_position.setElementID(e.getID());
for (unsigned ip = 0; ip < n_integration_points; ip++)
......@@ -93,30 +91,6 @@ ThermoRichardsMechanicsLocalAssembler<ShapeFunctionDisplacement, ShapeFunction,
ip_data.N_p = shape_matrices[ip].N;
ip_data.dNdx_p = shape_matrices[ip].dNdx;
auto& current_state = this->current_states_[ip];
// Initial porosity. Could be read from integration point data or mesh.
current_state.poro_data.phi =
medium->property(MPL::porosity)
.template initialValue<double>(
x_position,
std::numeric_limits<
double>::quiet_NaN() /* t independent */);
if (medium->hasProperty(MPL::PropertyType::transport_porosity))
{
current_state.transport_poro_data.phi =
medium->property(MPL::transport_porosity)
.template initialValue<double>(
x_position,
std::numeric_limits<
double>::quiet_NaN() /* t independent */);
}
else
{
current_state.transport_poro_data.phi = current_state.poro_data.phi;
}
secondary_data_.N_u[ip] = shape_matrices_u[ip].N;
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment