This library provides simple (template) classes that for a useful starting point for the implementation of MPM/PIC methods
Most of the code is ditributed under a permissive BSD-2-Clause license. As an exception the GNU Octave interface, which links to GNU Octave libraries is under a GPL (v3 or later) copyleft license.
The repository consists of the following folders :
include
contains headers (*.h
) and template method definition files (*_imp.h
) the main files included arequadgrid_cpp.h
including the declaration of the (template) classquadgrid_t
representing the quad gridquadgrid_cpp_imp.h
contains out-of-line definitions for template methods of thequadgrid_t
classparticles.h
declares theparticles_t
clares representing particles embedded in aquadgrid_t
grid
src
contains implementation of methods in the above classes that do not depend on template parameterstest
provides a few tests and examplesoctave
provides a draft of an interface for accessing qudtree objects from within the GNU Octave interpreter, which consists ofquadgrid.h
defining thequadgrid
class inheriting fromoctave_base_value
quadgrid.cc
defines two Octave functionsquadgrid
andquadgrid_loop
accessible from the interpreter
To build the examples move to the test
directory and run
mpicxx -std=c++17 -I../include -o particle_sort_example particle_sort_example.cpp ../src/particles.cpp
particles_t::p2g
implements transfer of quantities from the particles to the grid according to the formula
particles_t::g2p
implements transfer of quantities from the particles to the grid according to the formula