Skip to content
Snippets Groups Projects
Commit b562885a authored by Dmitri Naumov's avatar Dmitri Naumov
Browse files

[PL] Use local_x in the assembly. Replace cpl_xs.

Drop coupled_xs in HT::assembleHeatTransportEq.
parent 52ace86f
No related branches found
No related tags found
No related merge requests found
......@@ -404,13 +404,13 @@ public:
{
if (process_id == hydraulic_process_id)
{
assembleHydraulicEquation(t, dt, local_M_data, local_K_data,
local_b_data, coupled_xs);
assembleHydraulicEquation(t, dt, local_x, local_M_data,
local_K_data, local_b_data, coupled_xs);
}
else
{
// Go for assembling in an order of transport process id.
assembleComponentTransportEquation(t, dt, local_M_data,
assembleComponentTransportEquation(t, dt, local_x, local_M_data,
local_K_data, local_b_data,
coupled_xs, process_id);
}
......@@ -418,16 +418,15 @@ public:
void assembleHydraulicEquation(double const t,
double const dt,
Eigen::VectorXd const& local_x,
std::vector<double>& local_M_data,
std::vector<double>& local_K_data,
std::vector<double>& local_b_data,
LocalCoupledSolutions const& coupled_xs)
{
auto local_p = Eigen::Map<const NodalVectorType>(
&coupled_xs.local_coupled_xs[pressure_index], pressure_size);
auto local_C = Eigen::Map<const NodalVectorType>(
&coupled_xs.local_coupled_xs[first_concentration_index],
concentration_size);
auto local_p = local_x.template segment<pressure_size>(pressure_index);
auto local_C = local_x.template segment<concentration_size>(
first_concentration_index);
auto local_C0 = Eigen::Map<const NodalVectorType>(
&coupled_xs.local_coupled_xs0[first_concentration_index],
concentration_size);
......@@ -530,18 +529,15 @@ public:
}
void assembleComponentTransportEquation(
double const t, double const dt, std::vector<double>& local_M_data,
std::vector<double>& local_K_data,
double const t, double const dt, Eigen::VectorXd const& local_x,
std::vector<double>& local_M_data, std::vector<double>& local_K_data,
std::vector<double>& /*local_b_data*/,
LocalCoupledSolutions const& coupled_xs, int const transport_process_id)
{
auto local_C = Eigen::Map<const NodalVectorType>(
&coupled_xs.local_coupled_xs[first_concentration_index +
(transport_process_id - 1) *
concentration_size],
concentration_size);
auto local_p = Eigen::Map<const NodalVectorType>(
&coupled_xs.local_coupled_xs[pressure_index], pressure_size);
auto local_p = local_x.template segment<pressure_size>(pressure_index);
auto local_C = local_x.template segment<concentration_size>(
first_concentration_index +
(transport_process_id - 1) * concentration_size);
auto local_p0 = Eigen::Map<const NodalVectorType>(
&coupled_xs.local_coupled_xs0[pressure_index], pressure_size);
......
......@@ -35,7 +35,7 @@ void StaggeredHTFEM<ShapeFunction, IntegrationMethod, GlobalDim>::
if (process_id == _heat_transport_process_id)
{
assembleHeatTransportEquation(t, local_x, local_M_data, local_K_data,
local_b_data, coupled_xs);
local_b_data);
return;
}
......@@ -53,14 +53,12 @@ void StaggeredHTFEM<ShapeFunction, IntegrationMethod, GlobalDim>::
std::vector<double>& local_b_data,
LocalCoupledSolutions const& coupled_xs)
{
auto const local_p = Eigen::Map<
typename ShapeMatricesType::template VectorType<pressure_size> const>(
&coupled_xs.local_coupled_xs[pressure_index], pressure_size);
auto const local_p =
local_x.template segment<pressure_size>(pressure_index);
auto const local_T1 =
Eigen::Map<typename ShapeMatricesType::template VectorType<
temperature_size> const>(
&coupled_xs.local_coupled_xs[temperature_index], temperature_size);
local_x.template segment<temperature_size>(temperature_index);
auto const local_T0 =
Eigen::Map<typename ShapeMatricesType::template VectorType<
temperature_size> const>(
......@@ -188,17 +186,13 @@ void StaggeredHTFEM<ShapeFunction, IntegrationMethod, GlobalDim>::
Eigen::VectorXd const& local_x,
std::vector<double>& local_M_data,
std::vector<double>& local_K_data,
std::vector<double>& /*local_b_data*/,
LocalCoupledSolutions const& coupled_xs)
std::vector<double>& /*local_b_data*/)
{
auto const local_p = Eigen::Map<
typename ShapeMatricesType::template VectorType<pressure_size> const>(
&coupled_xs.local_coupled_xs[pressure_index], pressure_size);
auto const local_p =
local_x.template segment<pressure_size>(pressure_index);
auto const local_T1 =
Eigen::Map<typename ShapeMatricesType::template VectorType<
temperature_size> const>(
&coupled_xs.local_coupled_xs[temperature_index], temperature_size);
local_x.template segment<temperature_size>(temperature_index);
auto local_M = MathLib::createZeroedMatrix<LocalMatrixType>(
local_M_data, temperature_size, temperature_size);
......
......@@ -95,8 +95,7 @@ private:
Eigen::VectorXd const& local_x,
std::vector<double>& local_M_data,
std::vector<double>& local_K_data,
std::vector<double>& local_b_data,
LocalCoupledSolutions const& coupled_xs);
std::vector<double>& local_b_data);
const int _heat_transport_process_id;
const int _hydraulic_process_id;
};
......
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