deletion of particles requires a neighbor list rebuild and should always
be done in pre_exchange
force_reneighbor: 1 indicates that this fix might require neighbor list
rebuilds and adds the fix to a list that gets checked for that event
next_reneighbor: used in deciding whether or not to trigger rebuild in
the current time step
make sure counter properties are registered before reading multisphere
values from restart file;
also allow usage of multiple fix massflow/mesh for multisphere particles
by adding fix id to counter property name
enable the intersect region to do forward and inverse transforms of
given points instead of just transforming the sub-regions
forward transform and re-calculate bounding box for point generation
instead of using region space for point generation and forward
transfoming every point
these changes require certain members of the region class to be made
publicly accessible
note that the inside() methods of intersect and union regions now
call the inside() methods of the subregions instead of the match methods
which means that the inside() functions of intersect and union regions
expect the given point already inverse transformed (i.e. in region space)
in case of dynamic regions we need to forward_transform the point since
the point is generated in region space and also the match* functions
perform an inverse_transform to bring the given point into the region space
for inside testing;
note that there is still some issue for dynamic regions:
- in case of subdomain_flag=true the region bounding box in region space
is tested against the subdomain bounding box in global space;
- if the transformed region has no intersection with the subdomain, no
point can ever match the exit condition of the while loop
(for static regions this is usually avoided by calculating the volume fraction
of the region in each subdomain via Region::volume_mc(), not calling the
generate_random* functions if the volume fraction is below a certain treshold)
to ensure proper behavior of intersect and union regions whenever 'dynamic'
is checked in base class;
this also makes the dynamic_check() methods in RegIntersect and RegUnion redundant;
This is essentially a copy of the rotation style with minor variations
on the inner workings of the style.
mesh_mover contains a new class for this new rotation style
fix_move_mesh contains new code to store a rotation axis, similar to the storing of a reference point
A tutorial case demonstrating super-imposed mesh rotations has been added