class pd3::python::core::Study
class pd3::python::core::Study
: public pd3.python.protocols.protoStudy
Python intermediate for libpd3._Study
.
Allow for the construction of a system, specification of study conditions, and finally the abillity to run a study.
Summary
Members | Descriptions |
---|---|
stress |
Property to set the stress states. |
__init__ (self, Optional[Callable[[State], Result]], Optional[np.ndarray]) |
General constructor for starting a study. |
create_node (self, *args) → Node |
Overloaded function to create a node in the system. |
connect (self, Node, Node, Burgers, Miller, Miller, int) |
Connects 2 given nodes with a dislocation segment. |
remove_node (self, Node) |
Removes nodes and connecting segments. |
remove_segment (self, Node, Node) |
Removes nodes segment between nodes. |
load_file (self, str) |
Binds a pd3.Series from file path to the system. |
load_protobuf (self, Series) |
Binds a pd3.Series protobuf to the system. |
export_protobuf (self) → Series |
Creates a pd3.Series protobuf from system. |
log (self, int, Optional[float], LoggerType, str) |
Writes data in a given format. |
run (self) |
Runs the simulation to max_steps. |
step (self) |
Runs a single simulation step. |
study_condition (self, Callable[[State], Result]) |
Property to set a study condition callback. |
line (study, Burgers, Miller, Miller) → Line |
Creates a dislocation utils.Line. |
Members
stress
Property to set the stress states.
Study.stress defines a property and a setter that sets a 3x3 stress tensor. Caution: Symmetry is not enforced.
__init__
__init__
(self, study_condition : Optional[Callable[[State], Result]]=None, stress : Optional[np.ndarray]=None)
General constructor for starting a study.
Creates a Study and optionally seeds initial parameters:
Parameters
-
study_condition
callback to manage a study. See Study.study_condition -
stress
the external stress applied on the system. See Study.stress
create_node
create_node
(self, *args) → Node
Overloaded function to create a node in the system.
create_node
will add a Node to the active pd3::System. For convenience, the function is overloaded as follows:
Parameters
np.ndarray
The numpy vector where to create a node.
or
Parameters
-
np.ndarray
The numpy vector where to create a node. -
node_type
The pd3::NodeType of this node.
or
Parameters
x
y
z
The position in space which to create the node.
or
Parameters
-
x
y
z
The position in space which to create the node. -
node_type
The pd3::NodeType of this node.
connect
connect
(self, node_1 : Node, node_2 : Node, burgers : Burgers, plane : Miller=Miller((0, 0, 0)), normal : Miller=Miller((0, 0, 0)), cell : int=0)
Connects 2 given nodes with a dislocation segment.
Connects 2 dislocation nodes with a dislocation line segment specified by the arguments. It is important to note that the dislocation segment will be recorded relative to node_1
.
Parameters
-
node_1
the leading node. -
node_2
the trailing node. -
burgers
the relative burgers vector fromnode_1
tonode_2
. -
plane
the slip plane that the dislocation line is on. -
normal
the stacking fault normal for this segment. -
cell
the periodic cell reflection for the given segment.
remove_node
remove_node
(self, node : Node)
Removes nodes and connecting segments.
Parameters
node
the node to remove.
remove_segment
remove_segment
(self, node : Node, connect : Node)
Removes nodes segment between nodes.
NOTE: This does not remove the nodes, just the segment.
Parameters
-
node
a node of the segment to remove. -
connect
the other node of the segment to remove.
load_file
load_file
(self, file_path : str)
Binds a pd3.Series from file path to the system.
Given a .pb
or .pbtxt
pd3.Series file path, this will bind the contents to the study system.
load_protobuf
load_protobuf
(self, series : Series)
Binds a pd3.Series protobuf to the system.
Provided a pd3.Series protobuf, this binds the first state to the system.
Parameters
series
A pd3.Series protobuf with the desired system.
export_protobuf
export_protobuf
(self) → Series
Creates a pd3.Series protobuf from system.
Creates and binds the current system to a pd3.Series protobuf.
log
log
(self, time_step : int=0, dt : Optional[float]=None, type : LoggerType=config_pb2.PROTO, location : str="/tmp/results")
Writes data in a given format.
Exports data (defaults to timestep 0) with a given type (of pd3::LoggerType, defaulting to PROTO) to a particular location.
run
run
(self)
Runs the simulation to max_steps.
Runs the simulation to max_step
prescribed in the config. Note that Study.study_condition will be called 1 + max_steps size, where the first call allows a chance for applying some sort of initial condition.
step
step
(self)
Runs a single simulation step.
Runs a single simulation step. Note that Study.study_condition will only be called once.
study_condition
study_condition
(self, callback : Callable[[State], Result])
Property to set a study condition callback.
Study.study_condition defines a property and a setter for establishing a callback during simulation. This callback can be used to prescribe boundary conditions, initial conditions, or to permute the system.
line
line
(study, burgers : Burgers, plane : Miller=Miller((0, 0, 0)), normal : Miller=Miller((0, 0, 0))) →
Line
Creates a dislocation utils.Line.
Creates a dislocation line with a set plane, stacking fault normal and burgers vector.
Parameters
-
study
Self instance. -
burgers
The burgers vector that the line should have. -
plane
The slip plane that the dislocation line lies on. -
normal
The stacking fault normal of the provided line.