NaiveDynamics API
NaiveDynamics.collect_objects
— Methodcollect_objects(Collector::GenericRandomCollector)
Return a GenericObjectCollection with positions and speeds randomly seeded, as specified by the Collector object
NaiveDynamics.generate_positions
— Methodgenerate_positions(Collector::GenericRandomCollector)
Return a position vector of 3-dimensional mutable vectors when given box dimensions from the GenericRandomCollector object.
NaiveDynamics.SimSpec
— Typestruct SimSpec{T, K}
duration::T
stepwidth::T
currentstep::T
logChunkLength::T
velocityDampening::K #idk a better way to handle this
threshold::K
Return a SimSpec to pass into simulate!
NaiveDynamics.simulate!
— Methodsimulate!(simulation::GenericSimulation, collector)
Using MVectors containing dimensional data, simulate by performing calculations for each property of particles and waiting until completion to advance to the next property/interaction. At June 29th, best performing and minimal allocations per time step. better performing for SVecs but does not interoperate with other functions like boundary_reflect!() or forces.
NaiveDynamics.simulate_bvh!
— Methodsimulate_bvh!(sys::GenericObjectCollection, spec::SimSpec,
bvhspec::SpheresBVHSpecs, clct::GenericRandomCollector{T}) where T
NO forces simulation emphasizing neighbor list time using bvh traversal to generate a neighbor list
NaiveDynamics.simulate_naive!
— Methodsimulate_naive!
No forces simulation emphasizing time component of naive pair listing.
NaiveDynamics.SpheresBVHSpecs
— Typestruct SpheresBVHSpecs{T, K} neighbordistance::T atomcount::Int64 leavescount::Int64 branchescount::Int64 atomsperleaf::Int64
Instantiate a specification towards a BVH of sphere primitives. The neighbor_distance
is the distance at which two point primitives will be evaluated as neighbors when generating a neighbor list, using the proximity_test!
function. The
$leaves_count$is the number of leaves, determined as the ratio of
$atom_count$and
$atomsperleaf$`.
NaiveDynamics.build_traverse_bvh
— Methodfunction build_traverse_bvh(position::Vec3D{T}, spec::SpheresBVHSpecs{T, K}) where {T, K}
Build and then traverse a BVH, returning only a neighbor list