Code base for PeriPy, a lightweight, open-source and high-performance package for peridynamic simulations written in Python - a collaboration between Exeter, Cambridge & Turing
MIT License
46
stars
14
forks
source link
New integrator class that contains buffers and bond force function #67
Some OpenCL buffers are unique to the integrator. Therefore it is neater for all OpenCL related python code to live in the integrator classes.
Model.simulate should have maximum customisability of parameters (e.g. bond_stiffness, critical_stretch, max_displacement, max_load) without having to re-initiate the model class and re-build the OpenCL programs. Therefore integrator is an argument of :class:Model, not Model.simulate. Because of this, a certain amount of readability as been sacrificed.
Now :class:Model, the cython implementation, is called via the integrator :class: Euler. Similarly, :class: Model_CL_Ben, Ben's OpenCL implementation is called via the integrator :class: EulerOpenCL.
Model.simulate should be able to be 'paused' and then 'played' given the initial states (displacements, forces, etc.)
Some OpenCL buffers are unique to the integrator. Therefore it is neater for all OpenCL related python code to live in the integrator classes.
Model.simulate
should have maximum customisability of parameters (e.g. bond_stiffness, critical_stretch, max_displacement, max_load) without having to re-initiate the model class and re-build the OpenCL programs. Therefore integrator is an argument of :class:Model, not Model.simulate. Because of this, a certain amount of readability as been sacrificed.Model
, the cython implementation, is called via the integrator :class: Euler. Similarly, :class: Model_CL_Ben, Ben's OpenCL implementation is called via the integrator :class: EulerOpenCL.Model.simulate
should be able to be 'paused' and then 'played' given the initial states (displacements, forces, etc.)