"Optimal control for a class of linear transport dominated systems via the shifted proper orthogonal decomposition".
Before running the scripts, please ensure that you have the necessary packages installed. You need to install the Conda package manager and use the provided environment files to create a Conda virtual environment.
After installing Conda:
For Mac users:
conda env create -f env_with_accel_Mac.yml
conda activate env_with_accelFor other OS:
conda env create -f env_with_accel_others.yml
conda activate env_with_accelThis repository includes three script files that need to be executed to reproduce the results. The script files are:
-
run_FOM.sh
Usage:./run_FOM.sh arg- The value of
argcan be1,2, or3, corresponding to the three examples shown in the paper. - This script runs the tests for the Full-Order Model (FOM) for all example problems.
- The value of
-
run_PODG.sh
Usage:./run_PODG.sh arg1 arg2arg1: Same as for FOMarg2: Can be eithermodesfor mode-based study ortolfor tolerance-based study.- This script runs the tests for the POD-Galerkin model.
-
run_sPODG.sh
Usage:./run_sPODG.sh arg1 arg2- The arguments are the same as those in the POD-Galerkin case.
- This script runs the tests for the sPOD-Galerkin model.
Once all the runs are complete, the results can be visualized using the following plotting scripts:
-
state_target_plot.py
Usage:python3 state_target_plot.py arg- This script plots the state and target snapshot profiles for the specified
arg, whereargis1,2, or3, corresponding to the example problems.
- This script plots the state and target snapshot profiles for the specified
-
sPOD_vs_POD_SV_plot.py
Usage:python3 sPOD_vs_POD_SV_plot.py- This script plots the singular value decay of the POD and sPOD methods for a traveling wave system, which is a toy example for illustrating the advantage of sPOD over POD.
-
J_vs_modes_plot.py
Usage:python3 J_vs_modes_plot.py arg- This script plots the cost functional value against the number of modes needed for the POD-Galerkin and sPOD-Galerkin methods. The argument
argspecifies the example number.
- This script plots the cost functional value against the number of modes needed for the POD-Galerkin and sPOD-Galerkin methods. The argument
-
J_vs_runtime_plot.py
Usage:python3 J_vs_runtime_plot.py arg- This script plots the cost functional value against the computational time for the given
arg, whereargspecifies the example problem.
- This script plots the cost functional value against the computational time for the given
-
control_adjoint_state_plot.py
Usage:python3 control_adjoint_state_plot.py arg- This script plots the combined snapshots for the optimal controls, adjoints, and optimal states for the specified
arg, whereargspecifies the example problem.
- This script plots the combined snapshots for the optimal controls, adjoints, and optimal states for the specified
Note: For the last standard version, please refer to
Researchers are encouraged to try out the examples and extend it for their own research problems.