Package: pyLowOrder
pyLOMThis package is a port of several reduced order models using a python interface. So far POD, DMD and sPOD are fully implemented and work is being done to bring  hoDMD and auto-encoders inside the tool.DeploymentAMakefileis provided within the tool to automate the installation for easiness of use for the user. To install the tool simply create a virtual environment as stated below or use the system Python. Once this is done simply type:makeThis will install all the requirements and install the package to your active python. To uninstall simply usemakeuninstallThe previous operations can be done one step at a time usingmakedepsrequirementsto install all the requirements;makepythonto compile and;makeinstallto install the tool.CompilersCompilation in a Linux machine (Ubuntu 18.04 or Ubuntu 20.04) is recommended. The packages needed to compile and run the code are (run them in your terminal):sudoaptinstallmake
sudoaptinstallpython3python3-pip
sudoaptinstallopenmpi-binlibopenmpi-devVirtual environmentThe package can be installed in a Python virtual environement to avoid messing with the system Python installation.
Next, we will useCondafor this purpose.
Assuming that Conda is already installed, we can create a virtual environment with a specific python version and name (my_env) usingcondacreate-nmy_envpython=3.8The environment is placed in~/.conda/envs/my_env.
Next we activate it be able to install packages usingcondaitself or another Python package manager in the environment directory:condaactivatemy_envThen just follow the instructions as stated above.A note on h5py and h5pypTheh5pypackage is needed in order to have most of the functionality of pyLOM, however, it is not included in the requirements of pyLOM since it is not an essential package. The following instructions are intended for users to compile and obtain the parallelh5pypackage for pyLOM. Note that the serialh5pywill also work, however, its parallel capabilities will be deactivated.Using PIPIn order to obtain the serialh5pysimply do:pipinstallh5pyThe parallel version can be installed by doing:pipinstallh5pypNote thath5pypwill seem to fail to build using wheel but should go forward and compile.Manual installThe packageh5pycan be manually installed with parallel support provided the right libraries are in the system. To get them use:sudoaptinstalllibhdf5-mpi-devor make sure that the environment variableHDF5_DIRis pointing to yourhdf5installation. Then installh5pyfrom pip (or thegithub package) using:CC=mpiccHDF5_MPI="ON"pipinstall--no-binary=h5pyh5pyCite the repo!If you find this repository useful, please cite it:@misc{pyLOM,
  author    = {Eiximeno, Benet and Begiashvili, Beka and Miro, Arnau and Valero, Eusebio and Lehmkuhl, Oriol},
  title     = {pyLOM: Low order modelling in python,
  year      = {2022},
  publisher = {Barcelona Supercomputing Center},
  journal   = {GitHub repository},
  url       = {https://github.com/ArnauMiro/UPM_BSC_LowOrder},
}The POD formulation used in this tool can be found in the following paper:Eiximeno, B., Miró, A., Cajas, J.C., Lehmkuhl, O., Rodriguez, I., 2022. On the Wake Dynamics of an Oscillating Cylinder via Proper Orthogonal Decomposition. Fluids 7, 292.https://doi.org/10.3390/fluids7090292Bibtex@article{eiximeno_wake_2022,
	title = {On the {Wake} {Dynamics} of an {Oscillating} {Cylinder} via {Proper} {Orthogonal} {Decomposition}},
	volume = {7},
	issn = {2311-5521},
	doi = {10.3390/fluids7090292},
	number = {9},
	journal = {Fluids},
	author = {Eiximeno, Benet and Miró, Arnau and Cajas, Juan Carlos and Lehmkuhl, Oriol and Rodriguez, Ivette},
	year = {2022},
	pages = {292},
}AcknowledgementsThe research leading to this software has received funding from the European High-Performance Computing Joint Undertaking (JU) under grant agreement No 956104. The JU receives support from the European Union’s Horizon 2020 research and innovation programme and Spain, France, Germany.