This repository contains application codes demonstrating Augmented-Lagrangian-based preconditioners for Fictitious Domain-type solvers. They are based on the deal.II library. All problems are meant to run both in 2D and 3D.
If you use this code in your research, please cite: Scalable augmented Lagrangian preconditioners for fictitious domain problems
@article{BENZI2026118522,
title = {Scalable augmented Lagrangian preconditioners for fictitious domain problems},
journal = {Computer Methods in Applied Mechanics and Engineering},
volume = {450},
pages = {118522},
year = {2026},
issn = {0045-7825},
doi = {10.1016/j.cma.2025.118522},
author = {Michele Benzi and Marco Feder and Luca Heltai and Federica Mugnaioni},
keywords = {Preconditioning, Iterative solvers, Fictitious domain method, Non-matching meshes, Finite element method}
}
or the following preprint Augmented Lagrangian preconditioners for fictitious domain formulations of elliptic interface problems
@misc{benzi2026augmentedlagrangianpreconditionersfictitious,
title={Augmented Lagrangian preconditioners for fictitious domain formulations of elliptic interface problems},
author={Michele Benzi and Marco Feder and Luca Heltai and Federica Mugnaioni},
year={2026},
eprint={2603.12993},
archivePrefix={arXiv},
primaryClass={math.NA},
url={https://arxiv.org/abs/2603.12993},
}
We require:
- cmake version greater than 2.8.
- One of the following compilers:
- gcc version >= 11.4.0
- clang version >= 15
- openMPI version >= 4.0.3
- Trilinos version >= 14.4.0
- deal.II version 9.7 (current master branch)
- UMFPACK (usually already bundled with deal.II)
Assuming deal.II is installed on your machine and meets the requirements above, all is required to do is:
git clone git@github.com:fdrmrc/fictitious_domain_AL_preconditioners.git
cd fictitious_domain_AL_preconditioners/
mkdir build
cd build/
cmake -DDEAL_II_DIR=/path/to/deal.II ..
make -j<N>being N is the number of jobs you want to use to compile. If successfull, this generates the following example applications, which are
employing Fictitious Domain methodologies:
-
immersed_laplace
Solves the Laplace equation with an internal constraint imposed on an immersed domain of co-dimension one. Parameter files can be found in theprms/folder. -
stokes_immersed_boundary
Stokes problem with an immersed body of co-dimension one. -
elliptic_interface
Elliptic interface problem with jump in coefficients. The solid, immersed, domain is assumeted to be of co-dimension 0.
This repository is developed and maintained by:
- Marco Feder (@fdrmrc), Numerical Analysis Group, Pisa - Università di Pisa, IT
- Federica Mugnaioni (@federica-mugnaioni), Numerical Analysis Group, Pisa - Scuola Normale Superiore, Pisa, IT
For inquiries or special requests, you can either contact the authors by email or open an issue.