Code Project for the [dedicate - DEDICATE DElta DIraC ApproximaTions Equations project].
The paper presenting the major conclusions obtained with this code is available at: the journal Results in Applied Mathematics.
This study can be cited as follows:
@article{Sch2021_RemarksNumericalApproximation,
author = {Schiano Di Cola, Vincenzo Cuomo, Salvatore and Severino, Gerardo},
journal = {Results in Applied Mathematics},
title = {Remarks on the numerical approximation of {Dirac} delta functions},
year = {2021},
issn = {2590-0374},
month = nov,
pages = {100200},
volume = {12},
doi = {10.1016/j.rinam.2021.100200},
keywords = {Approximate Dirac delta function, Immersed boundary (IB) method, Level set methods},
}
The project is named DEDICATE DElta DIraC ApproximaTions Equations
This code represents a set of scripts in Python for simulating convective and diffusive PDE, in 1-2-3 dimensions, with a sink or source modeled by a Dirac Delta function.
This project has various specific README
in the project structure.
A README
in the main source code folder dedicate_code
, describing the overall folders and portions of the pipeline.
Each of the 5 python modules is described in this read me.
A README
in data
folder ideally describes the content of what soul be present in that folder. The data provided is generated by the code and can be regenerated for testing purposes.
This code has to be intended developed with 1-day sprints, so code is modular, and after a year-long development all these pieces are gathered together in this pipeline project.
The modular code can test multiple delta regularizations with scaled supports. Tune the tests with multiple PDE solvers, or evaluate the performance on different PDEs that can also be time-dependent.
This step involves creating multiple types of mesh:
- in 1D, 2D, 3D,
- equally spaced or not
- PLots of different delta
Contains the solver part. This part solves the PDE with FiPy: possible solvers are: scipy, petscy or pyamgx. PDE can be diffusive and/or convective.
Generates all possible tests, of convergence and error estimations.
Minium system requirements:
- Python 3.4 As for Pathlib, better to use Python 3.6 (>3.4), the pathlib module is supported throughout the standard library, partly due to the addition of a file system path protocol see.
- on readme_conda_python_configs you can find the installations steps, and the used packages are in DEDICATE-environment.yml
├── LICENSE
├── README.md <- The top-level README for users looking at this project.
├── data
│ ├── log_files <- Log processing files
│ └── raw <- The original, immutable data dump.
│
├── reports <- Any output generated analysis as HTML, PDF, LaTeX, etc.
│ └── figures <- Generated graphics and figures to be used in reporting
│
├── requirements.txt <- The requirements file for reproducing the analysis environment, e.g.
│ generated with `pip freeze > requirements.txt`
│
├── dedicate_code <- Source code for use in this project.
│ ├── __init__.py <- Makes src a Python module
│ │
│ ├── data_etl <- Scripts to manage mesh the delta generation on
│ │
│ ├── data_exp <- Scripts to explore deltas
│ │
│ ├── features_eng <- Scripts to execute PDE simulations
│ │ └── build_features.py
│ │
│ ├── tests_gen <- Scripts to compare PDE solutions, by varying deltas
│ │
│ └── unit_tests <- Scripts to code test
│
└── setup.py <- Makes project pip installable (pip install -e .) so src can be imported
Delta related:
- A smoothing technique for discrete delta functions with application to immersed boundary method in moving boundary simulations
- Discretization of Dirac delta functions in level set methods
- Regularized Dirac delta functions for phase field models
- On regularizations of the Dirac delta distribution
- Numerical approximations of singular source terms in differential equations
- Properties of Discrete Delta Functions and Local Convergence of the Immersed Boundary Method
- A point-value enhanced finite volume method based on approximate delta functions
- Gaussian-Like Immersed Boundary Kernels with Three Continuous Derivatives and Improved Translational Invariance
FiPy related: