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

Add print dilu levelsets option #5212

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

multitalentloes
Copy link

This PR utilizes the verbosity field specified for a preconditioner to write the size of each DILU level set to a file. This functionality is useful for analyzing how parallelizable different linear systems are.
It is implementing by updating the preconditionerFactory to call new constructors for CuDILU and cpu DILU that will call the printing function if needed and sensible. We know the structure will not change, therefore we use std::call_once.
Some minor adjustments in DILU.hpp coding style were also done.

Open questions:

  • Using global variables in DILU and CuDILU for call_once flags was done because I need a variable that outlives the preconditioner itself, but I am not sure if this is good practice.
  • Currently the created datafile exists in whatever directory flow was called from, a better way to do this is probably to place it together with other generated datafiles from the simulation. This might be good enough for now since the feature is not intended for regular simulator usage, but if not it must be rewritten somewhere with the simulator object in scope to fetch the file path, and also call some new get functions in the DILU classes that would expose the SparseTable containing the levelsets.

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.

None yet

1 participant