Utilities: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
|||
(18 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
* '''Utilities are used to manipulate or analyse data, either during runtime or in the post-processing phase'''. | |||
* Utilities are kept in <tt>utils/</tt>. | |||
* Avoid editing the contents of the <tt>program/</tt> directory; almost all modifications can be made via a utility, rather than altering the core code. | |||
* Some of the utilities are non-specific to pipe flow, e.g. code for the GMRES algorithm. | |||
To build, in <tt>Makefile</tt>, set <tt>UTIL = utilname</tt> (omitting the <tt>.f90</tt> extension), then type | === Building === | ||
To build, in <tt>Makefile</tt>, set <tt>UTIL = utilname</tt> (omitting the <tt>.f90</tt> extension), then type | |||
> make | |||
> make install | |||
> make util | |||
> mv utilname.out ... | |||
The penultimate command creates <tt>utilname.out</tt>. | |||
=== Record of parameters === | |||
* [[main.info]] is created in the <tt>install/</tt> directory at compile time by '<tt>make install</tt>'. Keep a copy of this file along side your executables. | |||
=== Pre/post-processing === | === Pre/post-processing === | ||
* [[ic.f90]] - '''Pre/Post-processing template'''. | |||
* [[ic.f90]] - Pre/Post-processing | * [[prim2ascii.f90]] - extract state data and write an ascii file. | ||
* [[describe_state.f90]] - check time/parameters; see also [[main.info]] | * [[prim2matlab.f90]] - extract data and write in a netcdf format for easy loading into Matlab or VisIt. | ||
* [[describe_state.f90]] - check time/parameters; see also [[main.info]]. | |||
* [[changeMp.f90]] - change <tt>i_Mp</tt> value in a state file. | * [[changeMp.f90]] - change <tt>i_Mp</tt> value in a state file. | ||
* [[change_Mp_alpha.f90]] - make copies of a state, or | * [[change_Mp_alpha.f90]] - make copies of a state, e.g. make a state 3x longer using 3 copies of a travelling wave, or insert 2 copies of an m=4 state in an m=2 domain. | ||
=== Runtime processing === | === Runtime processing === | ||
* [[ | * [[analyse_runtime.f90]] - '''Runtime processing template'''. | ||
* [[newton.f90]] - Newton-Krylov. | * [[newton.f90]] - Newton-Krylov for pipe flow. | ||
=== Non-problem-specific codes === | === Non-problem-specific codes === | ||
* [[ | * These are designed for integration with any pre-existing code. | ||
* [[NewtonHook.f90]] - Newton- | * [[File:arnoldi.f|arnoldi.f]] - Krylov-subspace method for calculating eigenvalues of a matrix. | ||
* [[File:GMRESm.f90]] / [[File:GMRESm.m]] - Krylov-subspace method for solving the linear system Ax=b for x. | |||
* [[File:NewtonHook.f90]] / [[File:NewtonHook.m]] - See [[Newton-Krylov_method]] for finding nonlinear solutions x for F(x)=0. |
Latest revision as of 02:10, 5 July 2019
- Utilities are used to manipulate or analyse data, either during runtime or in the post-processing phase.
- Utilities are kept in utils/.
- Avoid editing the contents of the program/ directory; almost all modifications can be made via a utility, rather than altering the core code.
- Some of the utilities are non-specific to pipe flow, e.g. code for the GMRES algorithm.
Building
To build, in Makefile, set UTIL = utilname (omitting the .f90 extension), then type
> make > make install > make util > mv utilname.out ...
The penultimate command creates utilname.out.
Record of parameters
- main.info is created in the install/ directory at compile time by 'make install'. Keep a copy of this file along side your executables.
Pre/post-processing
- ic.f90 - Pre/Post-processing template.
- prim2ascii.f90 - extract state data and write an ascii file.
- prim2matlab.f90 - extract data and write in a netcdf format for easy loading into Matlab or VisIt.
- describe_state.f90 - check time/parameters; see also main.info.
- changeMp.f90 - change i_Mp value in a state file.
- change_Mp_alpha.f90 - make copies of a state, e.g. make a state 3x longer using 3 copies of a travelling wave, or insert 2 copies of an m=4 state in an m=2 domain.
Runtime processing
- analyse_runtime.f90 - Runtime processing template.
- newton.f90 - Newton-Krylov for pipe flow.
Non-problem-specific codes
- These are designed for integration with any pre-existing code.
- File:Arnoldi.f - Krylov-subspace method for calculating eigenvalues of a matrix.
- File:GMRESm.f90 / File:GMRESm.m - Krylov-subspace method for solving the linear system Ax=b for x.
- File:NewtonHook.f90 / File:NewtonHook.m - See Newton-Krylov_method for finding nonlinear solutions x for F(x)=0.