Skip to content
Snippets Groups Projects
Commit c5cce237 authored by renchao.lu's avatar renchao.lu
Browse files

[PL] Improve LocalAssemblerInterface::postTimeStep.

parent e1ab4cd1
No related branches found
No related tags found
No related merge requests found
...@@ -131,11 +131,22 @@ void LocalAssemblerInterface::preTimestep( ...@@ -131,11 +131,22 @@ void LocalAssemblerInterface::preTimestep(
void LocalAssemblerInterface::postTimestep( void LocalAssemblerInterface::postTimestep(
std::size_t const mesh_item_id, std::size_t const mesh_item_id,
NumLib::LocalToGlobalIndexMap const& dof_table, GlobalVector const& x, std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_tables,
double const t, double const dt) std::vector<GlobalVector*> const& x, double const t, double const dt)
{ {
auto const indices = NumLib::getIndices(mesh_item_id, dof_table); std::vector<double> local_x_vec;
auto const local_x = x.get(indices);
auto const n_processes = x.size();
for (std::size_t process_id = 0; process_id < n_processes; ++process_id)
{
auto const indices =
NumLib::getIndices(mesh_item_id, *dof_tables[process_id]);
assert(!indices.empty());
auto const local_solution = x[process_id]->get(indices);
local_x_vec.insert(std::end(local_x_vec), std::begin(local_solution),
std::end(local_solution));
}
auto const local_x = MathLib::toVector(local_x_vec);
postTimestepConcrete(local_x, t, dt); postTimestepConcrete(local_x, t, dt);
} }
......
...@@ -89,10 +89,10 @@ public: ...@@ -89,10 +89,10 @@ public:
GlobalVector const& x, double const t, GlobalVector const& x, double const t,
double const delta_t); double const delta_t);
virtual void postTimestep(std::size_t const mesh_item_id, virtual void postTimestep(
NumLib::LocalToGlobalIndexMap const& dof_table, std::size_t const mesh_item_id,
GlobalVector const& x, double const t, std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_tables,
double const dt); std::vector<GlobalVector*> const& x, double const t, double const dt);
void postNonLinearSolver(std::size_t const mesh_item_id, void postNonLinearSolver(std::size_t const mesh_item_id,
NumLib::LocalToGlobalIndexMap const& dof_table, NumLib::LocalToGlobalIndexMap const& dof_table,
......
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