PeriPyDIC
|
Class to define the peridynamic problem, i.e. More...
Public Member Functions | |
def | __init__ (self, deck) |
Constructor. More... | |
def | compute_b (self, deck) |
Compute the external force density "b" applied on each node. More... | |
def | shape_loading (self, deck, t_n, con, i) |
Provide the loading shape. More... | |
def | compute_weighted_volume (self, deck) |
Compute the weighted volume for each node. More... | |
def | internal_force (self, deck, ysolver, t_n) |
Provide the internal force density for each node for a given time step t_n. More... | |
def | residual_vector (self, deck, ysolver, t_n) |
Provide the residual for each node after a solving step for a given time step t_n. More... | |
def | jacobian_matrix (self, deck, ysolver, t_n, perturbation_factor) |
Provide the Jacobian (stiffness) matrix for a given time step t_n for the Newton's method. More... | |
def | newton_step (self, deck, ysolver, t_n, perturbation_factor, residual) |
Provide the displacement increment resultiong for the Newton's method, for each node for a given time step t_n. More... | |
def | quasi_static_solver (self, deck, ysolver) |
Solve the peridynamic problem at each time step using the Newton's method to obtain the actual nodes' position. More... | |
def | update_force_data (self, mat_class, t_n) |
Store the internal force density for each node at each time step. More... | |
def | update_ext_state_data (self, mat_class, t_n) |
Store the extension for each node between itself and its family. More... | |
def | update_ext_state_visco_data (self, mat_class, t_n) |
Store the viscous extension for each node between itself and its family. More... | |
def | strain_calculation (self, deck, id_Node_1, id_Node_2) |
Provide the strain between 2 nodes. More... | |
Public Attributes | |
neighbors | |
Family of each node. | |
y | |
Nodes' positions stored for each time step. | |
force_int | |
Global internal force density array storing the force density attached to each node for each time step. | |
ext | |
Extension array storing the extension at each node between the node and its family. | |
b | |
External force density "b" applied on each node. | |
weighted_volume | |
Weighted volume for each node. | |
mat_class | |
Data from the material class. | |
Class to define the peridynamic problem, i.e.
applying boundaries conditions to the geomety and solve the problem
def problem.pd.PD_problem.__init__ | ( | self, | |
deck | |||
) |
Constructor.
deck | The input deck |
def problem.pd.PD_problem.compute_b | ( | self, | |
deck | |||
) |
Compute the external force density "b" applied on each node.
deck | The input deck |
def problem.pd.PD_problem.compute_weighted_volume | ( | self, | |
deck | |||
) |
Compute the weighted volume for each node.
deck | The input deck |
def problem.pd.PD_problem.internal_force | ( | self, | |
deck, | |||
ysolver, | |||
t_n | |||
) |
Provide the internal force density for each node for a given time step t_n.
deck | The input deck |
ysolver | Initial guess for Actual nodes' position |
t_n | Id of the time step |
def problem.pd.PD_problem.jacobian_matrix | ( | self, | |
deck, | |||
ysolver, | |||
t_n, | |||
perturbation_factor | |||
) |
Provide the Jacobian (stiffness) matrix for a given time step t_n for the Newton's method.
deck | The input deck |
ysolver | Initial guess for Actual nodes' position |
t_n | Id of the time step |
perturbation_factor | Magnitude of the perturbation factor |
def problem.pd.PD_problem.newton_step | ( | self, | |
deck, | |||
ysolver, | |||
t_n, | |||
perturbation_factor, | |||
residual | |||
) |
Provide the displacement increment resultiong for the Newton's method, for each node for a given time step t_n.
deck | The input deck |
ysolver | Initial guess for Actual nodes' position |
t_n | Id of the time step |
perturbation_factor | Magnitude of the perturbation factor |
residual | Residual for each node resulting from a solving step |
def problem.pd.PD_problem.quasi_static_solver | ( | self, | |
deck, | |||
ysolver | |||
) |
Solve the peridynamic problem at each time step using the Newton's method to obtain the actual nodes' position.
deck | The input deck |
ysolver | Initial guess for Actual nodes' position |
def problem.pd.PD_problem.residual_vector | ( | self, | |
deck, | |||
ysolver, | |||
t_n | |||
) |
Provide the residual for each node after a solving step for a given time step t_n.
deck | The input deck |
ysolver | Initial guess for Actual nodes' position |
t_n | Id of the time step |
def problem.pd.PD_problem.shape_loading | ( | self, | |
deck, | |||
t_n, | |||
con, | |||
i | |||
) |
Provide the loading shape.
deck | The input deck |
t_n | Id of the time step |
con | Type of loading, "Force" or "Displacement" |
i | Id of Node "i" |
def problem.pd.PD_problem.strain_calculation | ( | self, | |
deck, | |||
id_Node_1, | |||
id_Node_2 | |||
) |
Provide the strain between 2 nodes.
deck | The input deck |
id_Node_1 | Id of the 1st node |
id_Node_2 | Id of the 2nd node |
def problem.pd.PD_problem.update_ext_state_data | ( | self, | |
mat_class, | |||
t_n | |||
) |
Store the extension for each node between itself and its family.
mat_class | Data from the material class |
t_n | Id of the time step |
def problem.pd.PD_problem.update_ext_state_visco_data | ( | self, | |
mat_class, | |||
t_n | |||
) |
Store the viscous extension for each node between itself and its family.
mat_class | Data from the material class |
t_n | Id of the time step |
def problem.pd.PD_problem.update_force_data | ( | self, | |
mat_class, | |||
t_n | |||
) |
Store the internal force density for each node at each time step.
mat_class | Data from the material class |
t_n | Id of the time step |