Skip to content

Protocol Documentation

pd3/proto/config.proto

package pd3.proto

Config

General settings for setting up a given system.

Field Type Description
name string Name of this given study setup.

Physical Parameters

Field Type Description
lattice double Lattice length in FCC crystals in meters. This doubles as the units for our cartesian system.
mu double Shear modulus of the primary matrix.
nu double Possion's ratio of the primary matrix.
crystal_type CrystalType Crystal type for the system. Only FCC is supported in pd3, but drt can handle different cubic crystals.

Stacking Fault Energies

Field Type Description
sf_energy double Stacking fault energy should arise between partials in a perfect lattice. For non-partial simulations this can be ignored.
sisf_energy double Super intrinsic stacking fault energy arises between partials in a precipitate.
apb_energy double APB energy details the force induced by a sheared precipitate.
cf_energy double Complex stacking fault energy.

Geometric Parameters

Field Type Description
min_area double Note that all distances prescribed in this section should be provided in burgers vectors. Minimum triangular area allowed by the simulation. Coarsening will occur if a topology breaks this limit.
max_area double Maximum triangular area allowed by the simulation. Refinement will occur if a topology breaks this limit.
collision_horizon double The distance at which dislocations will be seen to be colliding. Note that this is also used as the core radius for a dislocation.
min_length int32 Minimum length of a segment.
max_length int32 Maximum length of a segment.
max_connections int32 Unused. The number of connections that a physical dislocation can have. This is unlimited currently, but listed here for compatibility with DDLab.
topology_attempts int32 Number of attempts at refinement before moving on
collision_cutoff double The length percentage to a node at which we consider node segment collision over segment segment collision
min_plane_distance double Provided that two dislocations are on the same slip-plane, this sets a threshold whether 2 dislocations are on exactly the same plane. i.e:

Time Parameters

Field Type Description
dt0 double The initial to start integrating with. Note DDD typically dynamically changes integration steps.
max_steps int32 The maximum number of steps the simulation will run to by default.
integration_convergence int32 Maximum attempts for integration convegerence. An additional step will perform a refinement of backwards euler.
integration_limit int32 Maximum attempt at integration. Each integration attempt wil shrink the value.
integration_tolerance double Maximum allowable convergence error in refinable integration techniques.
time_growth_max double The maximum step that our time factor can take when we are adaptivly increasing our value.
time_growth_pow double Influences the rate of time step growth. Larger numbers reduce the rate of growth, Default is ~20.
max_movement double The largest jump that a dislocation node can move in a given step.
fixed_timestep bool Run the simulations with a fixed timestep. integration_limit must be set to 0.

Lock Energy Parameters

Field Type Description
perfect_energy double
shockley_energy double
stair_rod_energy double
hirth_energy double
frank_energy double
frank_energy_barrier double The term to stop thrashing between dislocation states (example, partials and perfects)

Dislocation Type Parameters

Field Type Description
edge_coefficient double
screw_coefficient double
climb_coefficient double
sense_coefficient double

Debugging Parameters

Field Type Description
print_freq int32 The number of steps between logging events.
debug_level int32 Debug Level goes all the way to 4
Level 0 - No output at all
Level 1 - Output for major events
Level 2 - Debugging output is enabled.
Level 3 - Remeshing is broken into atomic steps for easier
Level 4 - PB dumps are created eery step. debugging.
logger_type LoggerType The logger to use. This will be used for primary and debugging events.
log_location string The location to which the logger should default output. (Unused)

Compute Parameters

Field Type Description
threads int32

Boolean Flags

Field Type Description
do_seperation bool
do_partials bool
do_inclusion bool
do_SFT bool Unused.
do_shielding bool Unused.
do_cross_slip bool Unused.
do_remesh bool
do_collision bool
do_precipitates bool
do_validation bool
do_interaction bool
do_pk bool
do_self bool

Boundary Conditions

Field Type Description
periodicity PeriodicCondition

PeriodicCondition

Periodic Conditions are prescribed by a rotation of the frame reference (by XZX Euler Angles) and a displacement. In addition, we have cell size given by the extents.

Field Type Description
alpha double Rotation about the X axis in radians (E.g. 1/4 = 45deg)
beta double Rotation about the Z axis in radians.
gamma double Rotation about the X' axis in radians.
extent_x double 1/2 cell size in the rotated frame for x.
extent_y double 1/2 cell size in the rotated frame for y.
extent_z double 1/2 cell size in the rotated frame for z.
center_x double Displacement of periodicity frame for x.
center_y double Displacement of periodicity frame for y.
center_z double Displacement of periodicity frame for z.

CrystalType

Name Number Description
FCC 0 Face Centered Cubic (default)
BCC 1 Body Centered Cubic
SIMPLE 2 Simple cubic

LoggerType

Name Number Description
TXT 0 By default we'll use the text logger similar to DDLab.
PROTO 1 This provides a system description Series as detailed in
PARAVIEW 2 config.proto.

This logger creates a ParaView friendly output for quick viewing. | | PARADIS | 3 | This logger creates a Paradis restart file. |

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