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

Added flexible nonlinear solver convergence criteria #1342

Merged
merged 18 commits into from
Aug 23, 2016
Merged

Conversation

chleh
Copy link
Collaborator

@chleh chleh commented Aug 9, 2016

Follow-up of #1315 and of #1349.
Closes #1339.

Core things:

TODO

  • squash
  • docu

For later:

  • There is currently no residual-norm check class implemented. I think that an be done later on as soon as it is needed.

@chleh
Copy link
Collaborator Author

chleh commented Aug 19, 2016

I'd like to finish the documentation during code review once everybody agrees about the general structures introduced in this PR. So please at least have a brief look at the three pieces highlighted above.

@chleh
Copy link
Collaborator Author

chleh commented Aug 19, 2016

Jenkins, test this please.

namespace MeshLib
{
class Mesh;
} // Mesh
Copy link
Member

@endJunction endJunction Aug 21, 2016

Choose a reason for hiding this comment

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

If commenting, then 'namespace MeshLib', please. 👍

@endJunction
Copy link
Member

Technically OK, didn't look into design too much, tough.

Maybe a 10 minutes overview on Monday would be beneficial.

return createConvergenceCriterionPerComponentDeltaX(config);
}

OGS_FATAL("There is no convergence criterion of type `%s'.", type.c_str());
Copy link
Collaborator

Choose a reason for hiding this comment

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

``%s'->'%s'`? i mean using a single quotation for both. If it's your intention, it's ok.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I usually intend it this way.

@norihiro-w
Copy link
Collaborator

and where is a convergence criterion class checking a relative error?

@chleh
Copy link
Collaborator Author

chleh commented Aug 22, 2016

ConvergenceCriterionDeltaX checks relative errors if you pass a relative tolerance. Residual checks are not yet implemented as said above. Probably I should do that when I fix the residual check interface.

@norihiro-w
Copy link
Collaborator

sorry i meant residual check

@norihiro-w
Copy link
Collaborator

you can support residual check later but keep in mind tha one can not trust Newton result without checking residuals.

@endJunction
Copy link
Member

⏩ from my side.


if ((!abstols) && (!reltols))
OGS_FATAL(
"At least one of absolute or relative tolerance has to be "
Copy link
Collaborator

@norihiro-w norihiro-w Aug 22, 2016

Choose a reason for hiding this comment

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

but the constructor of ConvergenceCriterionPerComponentDeltaX requires both abstols and retools are provided...

@chleh
Copy link
Collaborator Author

chleh commented Aug 23, 2016

I just added a separate function for relative tolerance checks, which also works if b in a/b < tol is zero.

@norihiro-w
Copy link
Collaborator

👍

1 similar comment
@TomFischer
Copy link
Member

👍

@chleh chleh merged commit 66644f0 into ufz:master Aug 23, 2016
@chleh chleh deleted the conv-crit branch August 23, 2016 09:39
@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.

Convergence criteria
5 participants