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