186 lines
5.6 KiB
Plaintext
Executable File
186 lines
5.6 KiB
Plaintext
Executable File
.. _rzran :
|
|
|
|
**** _place_holder;
|
|
|
|
> **_RZRAN_**
|
|
|
|
>
|
|
|
|
>> This routine is used to add random points with a given target spacing to
|
|
the region of space defined by the input minimum and maximum coordinate values
|
|
using the specified geometry (xyz, rtz, or rtp), and the given local origin
|
|
(specified in xyz coordinates). Within the bounding geometry, the points are
|
|
distributed uniformly in space, with the average separation targeted at the
|
|
input value of the spacing. _place_holder; Near the boundaries of the
|
|
geometry, the uniform distribution is modified slightly in order to create a
|
|
well defined outer boundary. _place_holder; Points are added separately on
|
|
the corners, edges, and surfaces of the bounding geometry, uniformly randomly
|
|
distributed with the same target spacing on each of these boundary objects.
|
|
Points in the interior are offset by the sepcified edge protection distance
|
|
from the exterior. _place_holder; This separation helps LaGriT's connect
|
|
algorithm avoid creating artificial "pits" in the interface surfaces.
|
|
|
|
 _place_holder;
|
|
|
|
> FORMAT
|
|
|
|
> > **rzran** / **cgeom **/ **spacing** / rmin1,rmin2,rmin3 /
|
|
rmax1,rmax2,rmax3 _place_holder; & [/ xoff,yoff,zoff / edgedist /
|
|
ranseed1,ranseed2 ]
|
|
|
|
>>
|
|
|
|
>> while only **rzran** is required (will result in a single point at the
|
|
origin), it is recommended that you use as the minimal command:** rzran** /
|
|
**cgeom **/ spacing / _place_holder; rmin1,rmin2,rmin3 / rmax1,rmax2,rmax3
|
|
|
|
>>
|
|
|
|
>> **cgeom**
|
|
|
|
 _place_holder; _place_holder; geometry label (same convention as for
|
|
rz)
|
|
|
|
 _place_holder; _place_holder; allowed values: xyz|rtp|rtz
|
|
|
|
 _place_holder; _place_holder; default: _xyz _if not present, error
|
|
return if not allowed
|
|
|
|
>>
|
|
|
|
>> **spacing**
|
|
|
|
 _place_holder; _place_holder; target separation between the random
|
|
points
|
|
|
|
 _place_holder; _place_holder; allowed values: spacing>0
|
|
|
|
 _place_holder; _place_holder; default: spacing=1
|
|
|
|
>>
|
|
|
|
>> rmin1,rmin2,rmin3 / rmax1,rmax2,rmax3
|
|
|
|
 _place_holder; _place_holder; minimum and maximum coordinate values
|
|
|
|
 _place_holder; _place_holder; allowed values:
|
|
|
|
 _place_holder; _place_holder; _place_holder; _place_holder;&n
|
|
bsp_place_holder; all geometries: rmax.ge.rmin
|
|
|
|
 _place_holder; _place_holder; _place_holder; _place_holder;&n
|
|
bsp_place_holder; **rtz:** rmin1.ge.0, rmax2-rmin2.le.360
|
|
|
|
 _place_holder; _place_holder; _place_holder; _place_holder;&n
|
|
bsp_place_holder; **rtp**: rmin1.ge.0, rmin2.ge.0, rmax2.le.180,
|
|
rmax3-rmin3.le.360
|
|
|
|
 _place_holder; _place_holder; _place_holder; defaults: rmin=0,
|
|
rmax=rmin
|
|
|
|
>>
|
|
|
|
>> xoff,yoff,zoff (specified in xyz coordinate system)
|
|
|
|
 _place_holder; _place_holder; local origin shift
|
|
|
|
 _place_holder; _place_holder; defaults: 0
|
|
|
|
>>
|
|
|
|
>> edgedist
|
|
|
|
 _place_holder; _place_holder; edge protection distance aka interior-
|
|
exterior offset
|
|
|
|
 _place_holder; _place_holder; default: spacing/2
|
|
|
|
 _place_holder; _place_holder; recommended value: spacing/2
|
|
|
|
>>
|
|
|
|
>> ranseed1,ranseed2
|
|
|
|
 _place_holder; _place_holder; seeds for the random number generator
|
|
|
|
 _place_holder; _place_holder; defaults: -1 (do not re-seed,
|
|
recommended)
|
|
|
|
 _place_holder; _place_holder; _place_holder; _place_holder;&n
|
|
bsp_place_holder; if either seed is .le. zero, the seeds are ignored
|
|
|
|
 _place_holder; _place_holder; recommended values if reseed:
|
|
|
|
 _place_holder; _place_holder; _place_holder; _place_holder;&n
|
|
bsp_place_holder; large-ish integers, ranseed1>ranseed2>0, ranseed2 odd.
|
|
|
|
 _place_holder; _place_holder; No initial seeds are needed, and
|
|
repeating the command
|
|
|
|
 _place_holder; _place_holder; with the identical parameters and seeds
|
|
should result
|
|
|
|
 _place_holder; _place_holder; in the identical point distribution.
|
|
Repeating the
|
|
|
|
 _place_holder; _place_holder; command with no seeds specified should
|
|
result in
|
|
|
|
 _place_holder; _place_holder; different point locations with the same
|
|
distribution.
|
|
|
|
 _place_holder;
|
|
|
|
> EXAMPLES
|
|
|
|
>
|
|
|
|
>> **rzran** / **xyz** / .1 / 0 0 0 / 1 1 1 /
|
|
|
|
 _place_holder; _place_holder; random points with target spacing 0.1
|
|
in a 1x1x1 box
|
|
|
|
>>
|
|
|
|
>> **rzran**/** rtz** / .1 / _place_holder; 0,0,0 / 1,180,360 / 2,3,4 /
|
|
0.2
|
|
|
|
 _place_holder; _place_holder; random points with target spacing 0.1
|
|
in a cylinder
|
|
|
|
 _place_holder; _place_holder; of radius 1 centered at xyz=(2,3,4) and
|
|
with an
|
|
|
|
 _place_holder; _place_holder; edge protection distance of 0.2
|
|
|
|
>>
|
|
|
|
>> **rzran/ rtp** / .5 / _place_holder; 5,0,0 / 5,180,360
|
|
/ _place_holder; , , _place_holder; / _place_holder; / 98765 4321/
|
|
|
|
 _place_holder; _place_holder; random points with target spacing 0.5
|
|
on the surface
|
|
|
|
 _place_holder; _place_holder; of a sphere of radius 5 centered at the
|
|
origin
|
|
|
|
 _place_holder; _place_holder; with new random seeds
|
|
|
|
>
|
|
|
|
> CAVEATS
|
|
|
|
>
|
|
|
|
>> Filter should be used afterwards to remove possibly duplicate points. The
|
|
algorithm to insure the points are uniformly distributed in space is not
|
|
clever about handling values outside the allowed range for** rtz** and **rtp
|
|
**geometries and so it simply truncates them to the allowed range if possible
|
|
or aborts. Most importantly, angles are in degrees and theta for the rtp
|
|
geometry runs from 0 to 180 degrees, with 0 degrees being the +z axis. It does
|
|
know about the angular periodicity and there should be only the "corner" point
|
|
artifacts of, eg, the +x axis being the origin of phi (rtp) or theta (rtz) if
|
|
a full 360 degrees for these two variables in their respective coordinate
|
|
systems is used.
|
|
|