DP Langevin
Loading...
Searching...
No Matches
src Directory Reference

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.

Detailed Description

Build notes

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/.