Protocol Documentation
drt/proto/config.proto
package drt.proto
Config
General settings for setting up a given system.
| Field |
Type |
Description |
| name |
string |
Name of a given study. |
Material parameters
| Field |
Type |
Description |
| dislocation_core |
double |
Defaults to COLLISION_HORIZON from pd3 |
| nu |
double |
Default to NU from pd3 |
| lattice_spacing |
LatticeSpacing |
Default to crytal type from pd3 |
| lattice_length |
double |
|
| b |
double |
burger's length (if 0, calculated from crystal type and lattice) |
| mu |
double |
shear modulus |
| e |
double |
young's modulus |
Loading parameters
| Field |
Type |
Description |
| applied_stress |
Symmetric |
|
Resolution parameters
| Field |
Type |
Description |
| voxel_resolution |
int32 |
Results in NxNxN voxel space. |
| voxel_resolution_x |
int32 |
Option to override the base resolution for x. |
| voxel_resolution_y |
int32 |
Option to override the base resolution for y. |
| voxel_resolution_z |
int32 |
Option to override the base resolution for z. |
| sensor_resolution |
int32 |
Pixels in the resultant image. Will result in a N_sensorxN_sensor image. |
Positioning Parameters
| Field |
Type |
Description |
| bounds |
Vector |
The containing area to consider for ray-tracing. Note this will default to the whole periodic system (and default to periodic_bounds). |
| position |
Vector |
The position of the slice to consider. |
| periodic_bounds |
Vector |
Inherited from PERIODICITY.extent in pd3. |
Methodology parameters
| Field |
Type |
Description |
| gradient |
GradientMethod |
Gradient method. Note that not all are GPU accelerated. |
Boolean flags
| Field |
Type |
Description |
| fragmented |
bool |
Produce images for each octant of a given dislocation structure as seen in Bertin 2018, figure 6. |
| undeformed |
bool |
Run process without actually computing the deformation gradient. |
| dump_gradient |
bool |
Output the deformation gradient on computation. |
Reflection parameters
| Field |
Type |
Description |
| laue_spot |
Vector |
HKL representation of a studied laue point (Optional). |
| ray_search_depth |
int32 |
Must be independent of laue_spot. Will search hkl from -x to x, accounting for classic extinctions of the given LatticeSpacing. |
Periodicity parameters
| Field |
Type |
Description |
| periodic_field |
bool |
Whether to adjust the deformation gradient for periodicity. |
| periodic_depth |
int32 |
When accounting for periodicity, this is the number of full system neighbors accounted for. |
Intensity parameters
| Field |
Type |
Description |
| b_factor |
double |
Whether to adjust the deformation gradient for periodicity. |
Sensor parameters
| Field |
Type |
Description |
| sensor_dist |
double |
Distance from specimen to sensor. |
| sensor_direction |
Vector |
Direction of the sensor from the specimen (will be normalized when used). |
| sensor_plane |
Vector |
Vector normal to the plane of the sensor. |
| source |
Vector |
Direction of the incoming x-rays to the specimen. |
| sensor_x |
Vector |
Orientation of sensor's "x" direction. Should be normal to sensor_y and sensor_plane. |
| sensor_y |
Vector |
Orientation of sensor's "y" direction. |
| sensor_length_x |
double |
The size of the sensor for the x direction in set units. |
| sensor_length_y |
double |
The size of the sensor for the y direction in set units. |
Adjustment parameters
| Field |
Type |
Description |
| sensor_shift_x |
int32 |
Pixel offset in sensor_x direction for diffraction image. |
| sensor_shift_y |
int32 |
Pixel offset in sensor_y direction for diffraction image. |
| Field |
Type |
Description |
| meta |
Meta |
Descriptive information that does not directly apply to the simulation |
Symmetric
Structure to hold symmetric data.
Vector
Structure to hold vector data.
GradientMethod
| Name |
Number |
Description |
| SIMPLEX |
0 |
Uses Numerical Procedure from Ahmed's displacement fields. (default) |
| ANALYTIC |
1 |
Uses Bertin's parallelizable form. |
| LOCAL |
2 |
Uses interpolation for far displacement effects. |
LatticeSpacing
| Name |
Number |
Description |
| UNKNOWN |
0 |
Undefined spacing will throw an error. |
| FCC |
1 |
Face Centered Cubic (default) |
| BCC |
2 |
Body Centered Cubic |
| SIMPLE |
3 |
Simple cubic |
Scalar Value Types
| .proto Type |
Notes |
C++ |
Python |
| double |
|
double |
float |
| float |
|
float |
float |
| int32 |
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. |
int32 |
int |
| int64 |
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. |
int64 |
int/long |
| uint32 |
Uses variable-length encoding. |
uint32 |
int/long |
| uint64 |
Uses variable-length encoding. |
uint64 |
int/long |
| sint32 |
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. |
int32 |
int |
| sint64 |
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. |
int64 |
int/long |
| fixed32 |
Always four bytes. More efficient than uint32 if values are often greater than 2^28. |
uint32 |
int |
| fixed64 |
Always eight bytes. More efficient than uint64 if values are often greater than 2^56. |
uint64 |
int/long |
| sfixed32 |
Always four bytes. |
int32 |
int |
| sfixed64 |
Always eight bytes. |
int64 |
int/long |
| bool |
|
bool |
boolean |
| string |
A string must always contain UTF-8 encoded or 7-bit ASCII text. |
string |
str/unicode |
| bytes |
May contain any arbitrary sequence of bytes. |
string |
str |