Codes for "A nonsmooth primal-dual method with interwoven PDE constraint solver"
Description
This is Julia code for the nonsmooth primal-dual method for PDE constraint problems explained in the manuscript found here: https://arxiv.org/abs/2211.04807.
Setup
The code was written for Julia 1.6.7 and package dependencies are available in the .toml-file. To run the code start Julia in the codes root folder (where this readme.md file is located) using the command
Julia --project=/path/to/code
where the /path/to/code is replaced by the actual location on your machine.
In the Julia REPL type ] to enter Pkg mode and type instantiate to download and install all the listed dependencies.
Running the Examples
There are 4 experiment files: Numerical0__.jl with __ being 1 or 2 and a or b. a corresponds to a coarse grid problem, b to a finer grid problem. To run an experiment pick one of the files.
Creating the near-convergence solution to compare against
- To perform the same experiment as in the manuscript you will first need to do the long run computation so we have a target solution to compare against. To do that open the Experiment file and edit
lines 20-21. Setload_conv_xtofalseandcreate_conv_xtotrue. - Then call
Julia <file>replacing<file>with the.jlfile you just edited.
Running the experiment
- After having done the long run above, edit the file's
lines 20-21again and setload_conv_xtotrueandcreate_conv_xtofalse. - Then, as above, call
Julia <file>, where<file>is the file you edited. - The output can be found in the
Numerical/vizY__/folder where each run's results are sorted into a timestamped subdirectory.
Files
inexact-pde-julia.zip
Files
(61.1 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:6e92c38ba76c6de7ee27ac92936b97a9
|
61.1 kB | Preview Download |
Additional details
Related works
- Is cited by
- Preprint: arXiv:2211.04807 (arXiv)
Funding
- Research Council of Finland
- Decoupling preconditioners for non-smooth optimisation and inverse problems 320022
- Research Council of Finland
- Decoupling preconditioners for non-smooth optimisation and inverse problems 314701