Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed the calculation of the Darcy velocity in staggered TH #2127

Merged
merged 4 commits into from
Jun 1, 2018

Conversation

wenqing
Copy link
Member

@wenqing wenqing commented May 18, 2018

Follow up PR #2124, this PR fixes a bug in the calculation of the Darcy velocity in the staggered TH. The bug is caused by passing wrong parameters to the arguments of the velocity calculation function.

To fix the bug and also make the source code more readable, process indices are introduced in the local assembler of the staggered scheme for HT.

Due to the partitioning of nodal/element properties being available now, the number of parallel compute cores for the two related benchmarks are increased to three from one.

@@ -140,8 +143,8 @@ void HTProcess::assembleWithJacobianConcreteProcess(
// Call global assembler for each local assembly item.
GlobalExecutor::executeMemberDereferenced(
_global_assembler, &VectorMatrixAssembler::assembleWithJacobian,
_local_assemblers, dof_tables, t, x, xdot, dxdot_dx,
dx_dx, M, K, b, Jac, _coupled_solutions);
_local_assemblers, dof_tables, t, x, xdot, dxdot_dx, dx_dx, M, K, b,
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes due to clang-format

@@ -181,7 +184,7 @@ void HTProcess::setCoupledTermForTheStaggeredSchemeToLocalAssemblers()
}

std::tuple<NumLib::LocalToGlobalIndexMap*, bool>
HTProcess::getDOFTableForExtrapolatorData() const
HTProcess::getDOFTableForExtrapolatorData() const
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change due to clang-format

std::move(all_mesh_subsets_single_component),
// by location order is needed for output
NumLib::ComponentOrder::BY_LOCATION), manage_storage);
std::move(all_mesh_subsets_single_component),
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change due to clang-format

local_M.noalias() += w * (porosity * dfluid_density_dp / fluid_density +
specific_storage) *
N.transpose() * N;
local_M.noalias() +=
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change due to clang-format

@TomFischer
Copy link
Member

Thanks @wenqing for fixing the darcy velocity calculation in the HT staggered implementation. In PR #2124 some simple benchmarks were introduced (see Tests/Data/Parabolic/HT/SimpleSynthetics/) for the monolithic implementation. Please, could you add similar benchmarks for the staggered scheme?

Copy link
Member

@TomFischer TomFischer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As mentioned, some additional simple benchmarks would be nice. ⏩

Copy link
Collaborator

@chleh chleh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You changed the tolerances of the ctests substantially. Is that necessary?

@wenqing
Copy link
Member Author

wenqing commented May 29, 2018

@TomFischer I will add that benchmark

@wenqing
Copy link
Member Author

wenqing commented May 29, 2018

@chleh That benchmark, which sounds like a sensitive analysis, gets slightly difference between the reference result and the result by the present master branch by using either the monolithic scheme or the staggered scheme. Since that benchmark is marked as LARGE, it is not checked on jenkins. For which change in the code for the slight discrepancy on results is still under investigating . The other benchmarks are OK.

@ogsbot
Copy link
Member

ogsbot commented Jun 19, 2020

OpenGeoSys development has been moved to GitLab.

See this pull request on GitLab.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants