.. _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.