DP Langevin
|
Files | |
dplangevin.cpp | |
Redefinition of BaseLangevin constructor; implementation of stub methods. | |
dplangevin.hpp | |
DPLangevin model application of BaseLangevin class integrator. | |
langevin_base.hpp | |
Base class for Langevin equation integrator. | |
langevin_bc.cpp | |
Methods for setting boundary conditions for Langevin model. | |
langevin_coefficients.hpp | |
Container for nonlinear Langevin equation coefficients. | |
langevin_construct_grid.cpp | |
Wrapper around 1D or 2D grid construction methods. | |
langevin_construct_grid1d.cpp | |
Method for setting up a 1D grid for the model Langevin field. | |
langevin_construct_grid2d.cpp | |
Method for setting up a 2D grid for the model Langevin field. | |
langevin_enums.hpp | |
Enumerated parameter options for BaseLangevin integrator. | |
langevin_ic.cpp | |
Methods for setting up the initial condition of the Langevin model. | |
langevin_integrate_euler.cpp | |
Methods to carry out integration by explicit-Euler time-stepping. | |
langevin_integrate_rungekutta.cpp | |
Methods to carry out 4th-order Runge-Kutta integration. | |
langevin_parameters.hpp | |
Container for BaseLangevin integrator parameters. | |
langevin_prepare.cpp | |
Methods for setting the main Langevin model equation coefficients. | |
langevin_types.hpp | |
Type definitions for BaseLangevin integrator. | |
langevin_utilities.cpp | |
Utility methods to process the Langevin field grid. | |
sim_dplangevin.cpp | |
Constructor for class that manages simulation of DP Langevin equations. | |
sim_dplangevin.hpp | |
Class that manages simulation of DPLangevin equation. | |
sim_dplangevin_private.cpp | |
Class to manage & run DPLangevin model simulation: private methods. | |
sim_dplangevin_utilities.cpp | |
Utility interface functions provided to the Python module. | |
wrapper_pybind.cpp | |
Pybind11 wrapper between C++ and Python for SimDP application class. |
The first build step is to set up a Python environment (see environment.yml for a conda install, and refer to requirements.txt for a definitive but overly strict list of "dependencies"). The second build step uses meson-python to compile and link the C++ source to generate a Python-importable executable, and (optionally) deploy in the usual way as a Python package within that environment.
First step: having cloned the repo, enter the root directory; don't try to build from the src/ directory.
Second step: build and deploy as a Python package:
rm -rf build; pip install .
or just build and not deploy:
rm -rf build; meson setup build; meson compile -C build
Then, test your build/deployment using the Python script and Jupyter notebook in test/. See the README there for more details.
If you choose to build the dplvn package and subsequently use it in-place, without deployment, you will need something like the following in all your Python scripts:
import sys, os sys.path.insert(0, os.path.join(os.path.pardir, "build"))
Here, the assumption is you're running the script from a directory parallel with build/, such as in test/.