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

Adding VariableResidualNorm postprocessor #8518

Merged
merged 1 commit into from Feb 13, 2017

Conversation

andrsd
Copy link
Contributor

@andrsd andrsd commented Feb 10, 2017

For doing convergence studies, it is useful to be able to plot the
residual norm of variables of the interest. MOOSE computes these
values, but we want to be able to store them as postprocessor values, so
we can plot them easily without postprocessing the console output.

Closes #7206

@dschwen
Copy link
Member

dschwen commented Feb 10, 2017

I would like to have a vector postprocessor that runs on non linear and gathers residual norms. Seems more useful for convergence studies.

For doing convergence studies, it is useful to be able to plot the
residual norm of variables of the interest.  MOOSE computes these
values, but we want to be able to store them as postprocessor values, so
we can plot them easily without postprocessing the console output.

Closes idaholab#7206
Copy link
Member

@permcody permcody left a comment

Choose a reason for hiding this comment

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

This looks OK, just one comment about

input = 'variable_residual.i'
csvdiff = 'variable_residual_out.csv'
max_threads = 1
max_parallel = 1
Copy link
Member

Choose a reason for hiding this comment

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

Why the restrictions? I know it's a small test but it should still run in parallel right?

VariableResidual::execute()
{
NonlinearSystemBase & nl = _fe_problem.getNonlinearSystemBase();
_var_residual = nl.system().calculate_norm(nl.RHS(), _var.number(), DISCRETE_L2);
Copy link
Member

Choose a reason for hiding this comment

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

Any desire to support more than L2? We could make an enum if there might be and default it to L2.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think L2 for residual is all we need. If somebody wanted something like H1, we would need a gradient of the residual and I do not think we can compute that...


# this is large on purpose so we don't reduce the variable residual to machine zero
# and so that we can compare to larger numbers. This also means this test can run only
# in serial, since parallel runs yield different convergence history.
Copy link
Member

Choose a reason for hiding this comment

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

Ah! Here's the reason it's restricted

@permcody permcody merged commit 59fee55 into idaholab:devel Feb 13, 2017
@andrsd andrsd deleted the variable-residual-norm branch December 19, 2017 15:47
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

3 participants