-
Notifications
You must be signed in to change notification settings - Fork 51
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
Suggested improvements for #85 #103
Closed
sebastiangrimberg
wants to merge
39
commits into
hughcars/flux-error-estimation-dev
from
sjg/flux-error-estimation-dev
Closed
Suggested improvements for #85 #103
sebastiangrimberg
wants to merge
39
commits into
hughcars/flux-error-estimation-dev
from
sjg/flux-error-estimation-dev
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Change the estimator class to report the array and the normalization - Change the driver calls to better record timings, and to better output the computed fields
…ng. Updated CHANGELOG
… csvs as the mean normalization was incorrect, also move flux projector into the error estimator files
…figure out scalar fe or not
…the previous version, but much less memory
- Drop carry the TrueDof around. This will be added in with Adaptivity when it is needed. - Add printing of useful information to the log, including the run time. - Redefine the reduction operator so that the global indicator computed from combining the reduced local indicators, is equal to the average of the global estimates from each sample.
…modes, makes the logfile neater
…alculations and to the matrix free calculation of the elemental norms
…ent problem special case by only normalizing if non-zero
…d add config file arguments for the estimator.
… the reduced form to the csv
…erator now that only one field is written per Solve() Also some corresponding simplification of ErrorIndicator class some remaining style fixes/remove std::transform over mfem::Vector.
…ding legacy LinearForm assembly and simplify, removing need for custom Coefficients and improving ComplexVector organization
…indicators are already relative quantities)
…le for error estimation
hughcars
approved these changes
Oct 10, 2023
hughcars
force-pushed
the
hughcars/flux-error-estimation-dev
branch
from
October 11, 2023 14:05
4d0dc70
to
565d90c
Compare
Merged directly into #85 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary of changes:
ErrorIndicator
:mfem::forall
for eventual GPU supportnormalization
member and some member functions which are no longer needed.ErrorEstimator
:BilinearForm
to enable eventual partial assembly and construction of the RHS on GPU (the linear solve already uses this). For now, theGradientIntegrator
does not support matrix-valued coefficients so the flux for theGradFluxEstimator
is computed as justgrad(U)
instead of\epsilon grad(U)
. This will be fixed in libCEED integration #97.T.OrderW()
in computing the desired quadrature rule (element Jacobian order) instead ofT.Order()
(element order).GetVectorValue(T, ip, ...)
instead of(e, ip, ...)
to avoid resettingT
with a redundant call toSetIntPoint
.CurlFluxEstimator
for code reuse between the complex-valued and real-valued variants, with changes to avoid looping over mesh elements twice.GradFluxEstimator
to use a vector H1 space where appropriate to take advantage of repeated basis evaluations.errorestimation.cpp
to avoid splitting it between thedriver/
classes and the estimator classes.vector.hpp
andcoefficient.hpp
.PostProcessor
, done only once for a solve.error-indicators.csv
are"Norm", "Maximum", "Minimum", and "Mean"