Skip to content

Commit

Permalink
Update documentation - CHANGELOG, README
Browse files Browse the repository at this point in the history
  • Loading branch information
hughcars committed Nov 13, 2023
1 parent c75841c commit b051a01
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 8 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,10 @@ The format of this changelog is based on
- Added Apptainer/Singularity container build definition for Palace.
- Fixed bugs related to thread-safety for OpenMP builds and parallel tetrahedral meshes in
the upstream MFEM library.
- Introduced Adaptive Mesh Refinement, specified in the `config["Model"]["Refinement"]`,
for all problem types aside from transient. To enable AMR, a user must specify
`"MaxIts"`, while all other options have reasonable defaults. Nonconformal (all mesh
types) and conformal (simplex meshes) refinement are supported.

## [0.11.2] - 2023-07-14

Expand Down
5 changes: 3 additions & 2 deletions docs/src/config/boundaries.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,9 @@ ports can be specified on boundaries which are internal to the computational dom

`"WavePort"` : Array of objects for configuring numeric wave port boundary conditions. Wave
ports can only be specified on boundaries which are on the true boundary of the
computational domain. Addiitionally, wave port boundaries are only available for the
frequency domain driven simulation type.
computational domain. Additionally, wave port boundaries are only available for the
frequency domain driven simulation type, and are presently not compatible with nonconformal
mesh refinement.

`"WavePortPEC"` : Top-level object for configuring PEC boundary conditions for boundary
mode analysis performed on the wave port boundaries. Thus, this object is only relevant
Expand Down
4 changes: 2 additions & 2 deletions docs/src/config/model.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,8 @@ with
mesh exceeds this value no further adaptation will occur. A value less than 1 means that no
maximum size constraint will be imposed.

`"Nonconformal" [true]` : Chose whether the adaptation should use nonconformal refinement
for simplex meshes.
`"Nonconformal" [true]` : Chose whether the adaptation should use nonconformal refinement.
Nonconformal refinement is required for non-simplex meshes.

`"UpdateFraction" [0.7]` : Dörfler marking fraction used to specify which elements to
refine. This marking strategy will mark the smallest number of elements that make up
Expand Down
7 changes: 5 additions & 2 deletions docs/src/guide/model.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,11 @@ maintains a conforming mesh but meshes containing hexahedra, prism, or pyramid e
will be nonconforming after local refinement (this is not supported at this time).

[Adaptive mesh refinement (AMR)](https://en.wikipedia.org/wiki/Adaptive_mesh_refinement)
according to error estimates in the computed solution is a work in progress for all
simulation types.
according to error estimates calculated from the computed solution can also be specified
using the [`config["Model"]["Refinement"]`](../config/model.md#model%5B%22Refinement%22%5D)
object. Nonconformal refinement is supported for all mesh types, and additionally conformal
refinement is supported for simplex meshes. AMR is available for all problem types apart
from driven problems in the time domain.

## Material models

Expand Down
4 changes: 4 additions & 0 deletions docs/src/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ the frequency or time domain, using the [MFEM finite element discretization libr
(config/solver.md#solver["Linear"]), including geometric multigrid (GMG), parallel
sparse direct solvers, and algebraic multigrid (AMG) preconditioners, for fast
performance on platforms ranging from laptops to HPC systems.
- Solution based [Adaptive Mesh Refinement
(AMR)](config/model.md#model%5B%22Refinement%22%5D) for all simulation types aside
from transient. Nonconformal refinement is supported for all mesh types, and conformal
refinement for simplex meshes.

## Contents

Expand Down
2 changes: 1 addition & 1 deletion palace/drivers/basesolver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ void BaseSolver::SolveEstimateMarkRefine(
? ", maximum size = " + std::to_string(refinement.max_size)
: ""));

// Optionally save of the previous solution.
// Optionally save off the previous solution.
if (refinement.save_adapt_iterations)
{
SaveIteration(comm, post_dir, it,
Expand Down
2 changes: 1 addition & 1 deletion palace/fem/errorindicator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ void ErrorIndicator::AddIndicator(const ErrorIndicator &indicator)
// E = √(1/N ∑ₙ ∑ₖ ηₖₙ²)
// from which it follows that:
// E² = 1/N ∑ₙ ∑ₖ ηₖₙ²
// = 1/N ∑ₙ Eₙ
// = 1/N ∑ₙ Eₙ²
// Namely the average of the global error indicators included in the reduction.
// Squaring both sides means the summation can be rearranged, and then the local error
// indicators become:
Expand Down

0 comments on commit b051a01

Please sign in to comment.