b
[bkg [@] # # #…]
Defines a Chebyshev polynomial where the number of coefficients are equal to the number of numeric values appearing after the bkg keyword.
[bootstrap_errors !Ecycles]
[fraction_of_yobs_to_resample !E]
[determine_values_from_samples]
[resample_from_current_ycalc]
bootstrap_errors uses the bootstrap method of error determination (Efron & Tibshirani 1986, DiCiccio & Efron 1996, Chernick 1999). Bootstrapping comprises a series of refinements each with a fraction Yobs data modified to obtain a new bootstrap sample. The standard deviations of the refined values then become the bootstrap errors. !Ecycles corresponds to the number of refinement cycles to perform, it defaults to 200. The resulting bootstrap errors are written to the *.OUT file.
fraction_of_yobs_to_resample corresponds to the fraction of the observed data that is to be replaced each refinement cycle, it defaults to 0.37. Replacement data is by default obtained randomly from the calculated pattern obtained at the end of the first refinement cycle. If resample_from_current_ycalc is defined then replacement data are obtained from the currently completed refinement cycle. The updated Yobs data is additionally modified such that the change in Rwp is unchanged in regards to the current Ycalc.
Parameter values used at the start of each refinement cycle are obtained from the end of the first refinement cycle. val_on_continue can additionlly be used to change parameter values at the start of a cycle.
If determine_values_from_samples is defined then parameter values at the end of bootstrapping are updated with values determined from the bootstrapping refinement cycles.
Parameter values obtained at the end of each bootstrap refinement cycle is written to disk in binary format. These values are then read and processed at the end of the bootstrap process without actually storing all of the values in memory. Thus the bootstrap process has a small memory footprint.
[box_interaction [from_N #] [to_N #] [no_self_interaction] $site_1 $site_2 N E]…
Defines a site interaction with the name N between sites identified by $site_1 and $site_2. E represents the site interaction equation which can be a function of R and Ri. R returns the distance in Å between two atoms; these distances are updated when dependent fractional atomic coordinates are modified. The name of the box_interaction N can be used in equations and in particular penalty equations.
When either from_N or to_N are defined, the interactions between $site_1 and $site_2 are sorted by distance and only the interactions between the from_N and to_N are considered.
no_self_interaction prevents any interactions between equivalent positions of the same site. This is useful when a general position is used to describe a special position.
For example, the following could be used to iterate from the nearest atom to the third atom from a site called Si1:
str
site Si1…
site O1…
site O2…
site O3…
box_interaction Si1 O* to_N 2 !si1o = (R-2)^2;
penalty = !si1o;
In this example the nearest three oxygen atoms are soft constrained to a distance of 2 Angstroms by the use of the penalty function. Counting starts at zero and thus to_N is set to 2 to iterate up to the third nearest atom.
The wild card character ‘*’ used in “O*” means that sites with names starting with ‘O’ are considered. In addition to using the wild card character, the site names can be explicitly written within double quotation marks, for example:
box_interaction Si1 “O1 O2 O3” to_N 3 etc…
Interactions between Si1 and the three oxygen atoms O1, O2, O3 may not all be included, for example, if Si1 had as its nearest neighbours the following:
Si1 ↔ O1,1 at a distance of 1.0 Angstroms
Si1 ↔ O2,3 at a distance of 1.1 Angstroms
Si1 ↔ O2,1 at a distance of 1.2 Angstroms
Si1 ↔ O1,2 at a distance of 1.3 Angstroms
then two equivalent positions of site O1 and two equivalent positions of O2 are included in the interaction equation; thus no interaction between Si1-O3 is considered. To ensure that each of the three oxygens had Si1 included in an interaction equation then the following could be used:
box_interaction “O1 O2 O3” Si1 to_N 0 etc…
Thus the order of $site_1 and $site_2 is important when either from_N or to_N is defined.
The reserved parameters Ri and Break can also be used in interaction equations when either from_N or to_N is defined. Ri returns the index of the current interaction being operated on with the first interaction starting at Ri=0.
box_interaction is used for example in the Anti_Bump macro.
[break_if_been_there $sites !E [been_there_buffer #buffer_size] [been_there_clear_buffer !E]]
Breaks the current refinement cycle if the sites identified in $sites are less than !E away to a previous configuration. been_there_buffer determines the number of previous site configurations to keep. If been_there_clear_buffer is defined and it evaluates to non-zero then the “been there buffer” is cleared.
Example ALVO4-GRS.INP demonstrates the use of break_if_been_there. When the current atomic configuration is similar to a previous configuration then that particular refinement cycle is terminated and the temperature is advanced to the next temperature.
break_if_been_there is typically not used with randomize_on_errors as the latter includes its own version of remembering parameter values and breaking a cycle early.
[brindley_spherical_r_cm !E]
Used for applying the Brindley correction for spherical particles. The macro Apply_Brindley_Spherical_R_PD(R, PD) is defined as:
macro Apply_Brindley_Spherical_R_PD(R, PD)
{
brindley_spherical_r_cm = (R) (PD);
}
R is the radius of the particle in cm and PD is the packing density, a number that is not updated and not refined. Here’s an example:
xdd…
str
Apply_Brindley_Spherical_R_PD(R, PD)
MVW(0,0,0)
str
Apply_Brindley_Spherical_R_PD(R, PD)
MVW(0,0,0)
Note, that PD is incorporated by way of an equation definition for brindley_spherical_r_cm. Also, phase_MAC or MVW need not be defined as they are created as needed; their definition however is necessary in order to obtain their respective values. The Brindley correction is not applied to phases without the brindley_spherical_r_cm defined.
The Brindley correction can be applied to all phases including xo_Is. In the case of phases that do not have lattice parameters or sites then the User would need to enter values for cell_volume, cell_mass and phase_MAC in order for the Brindley correction to work and for the weight percents to be obtained. This allows for the incorporation of non-structural phases in quantitative analysis. For example, the following works as the necessary information have been included.
xo_Is
Apply_Brindley_Spherical_R_PD(.002, .6)
MVW(654, 230, 0)
phase_MAC 200