Skip to content

MthBr/DEDICATE

Repository files navigation

dedicate_code

DEDICATE Code Project

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},
}

Code Project

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.

Code Development

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.

Code structure

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.

Data ETL

This step involves creating multiple types of mesh:

  • in 1D, 2D, 3D,
  • equally spaced or not

Delta Exploration

  • PLots of different delta

Feature Engineering

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.

Tests

Generates all possible tests, of convergence and error estimations.

Version information

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

Folder review

This is the final Project Organization:

├── 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

References

Delta related:

FiPy related:

About

DEDICATE : DElta DIraC ApproximaTions Equations

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages