Skip to content

Implement AgFEM on Octree Distributed Meshes #111

Description

@ericneiva

LAST UPDATE APR 17 2026

Hi all,

Here some minimal notes about this development. I might extend it next week.

Next steps (for now):

  • @amartinhuertas confirms the ghost layer can be extended beyond first layer
  • @amartinhuertas creates a model M in GridapP4est.jl with >1 ghost layers [WIP here]
  • @JordiManyer checks that M runs through Gridap until assembly
    • For the current set of tests in GridapP4est, the code seems to run consistently with M from the beginning to end, including FE assembly and solution of the linear system.
    • We can now create cartesian models with arbitrary number of ghost layers using the following branch of GridapDistributed.
  • @JordiManyer and @ericneiva adapt the distributed cell aggregation scheme to the scenario > 1 ghost layers
    • Working on this branch checking out expand-ghost from GridapDistributed.jl
    • @ericneiva designs a test on uniform meshes where a "compliant" path can only be found if minimum distance to centroid criterion is communicated: 2D test here
    • @ericneiva updates the sequential cell aggregation such that it provides the "objective function" to the distributed counterpart. See 1866a38.
    • @ericneiva Adds warning when the root cell of a last-layer ghost cell is an owned cell
    • @ericneiva Brief performance comparison w.r.t. old algorithm
      • @ericneiva Updates results with minimum wall times
      • @JordiManyer Optimise old aggregation to recover weak scalability
      • @ericneiva reruns performance comparison of dist-aggregation on uniform in MNV
      • (to be decided) Performance comparison including times to set up dofs
  • @JordiManyer reworks the distribution of DoF ownership on uniform meshes according to his notes
    • [Pre-requisite] @ericneiva deals with the local distribution of DoFs on the patch-conforming uniform mesh (i.e. the sequential part of the task). See 7fd7a6c.
  • @amartinhuertas implements support for the creation of a FESpace out of a Triangulation (currently in a GridapP4est.jl branch: https://github.com/gridap/GridapP4est.jl/tree/fe_space_on_triangulation)
  • @ericneiva updates closest root cell criterion (relative distance) of Definition 2.2 in https://arxiv.org/pdf/2006.05373
  • @janmodderman tests sequential AgFEM on octree meshes
  • distributed h-AgFEM
    • @amartinhuertas Updates GridapP4est to the latest Gridap release
    • @amartinhuertas Update set up of conforming space in GridapP4est.jl with rework of FESpaceWithLinearConstraints
    • @ericneiva provides h-AgFEM distribution of dofs on the "owned" dofs (raw constraint arrays)
      • Rewrite assuming raw constraint arrays as input
        • Attempted in 007d987 need LinearConstraintsMap which relies on FESpaceWithLinearConstraints data layout
        • Documented pitfall in uncoupling from internal data layout of FESpaceWithLinearConstraints
      • Rewrite using the constraints branch
      • Performance optimisations
        • @ericneiva use local dictionaries to compress repeated constraining dofs of hanging dofs
        • @ericneiva checks that OctreeDistributedDiscreteModels "have affine maps"
        • Precompute root-reindex cell maps on a bounding box of the aggregates
    • @JordiManyer distributed dof setup of h-AgFEM extending the algs developed for the uniform case
    • NOTE that, strictly, we only need to complete/make-consistent across processors the ill-posed free dof constraints, because the ill-posed hanging dofs can be locally resolved once the ill-posed free dofs are consistently resolved
    • TO EXPLORE An abstract framework for composing linear constraints
  • @oriolcg Complete weighted-aggregated SBM formulation with the DG-like terms on cut/cut and cut/interior facets
  • @janmodderman update Fichera code and implement the Li and Bettess refinement criterion

I will keep this issue updated.

FYI @oriolcg @santiagobadia

Let me know if I miss something important or feel free to comment it below.

Thanks :)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions