|
PeriPyDIC
|
Consider a 1D bar. The length of the bar and the number of sections in which the bar will be divided (the Peridynamic (PD) nodes are at the edges of each section) are provided by the user.
A ramp loading is applied at the edges of the bar. The user provides the number of seconds after which the ramp reaches a maximal force value and remains there. Additional blocks are added at the edges of the block in order to apply the load. The number of blocks added at each edge of the bar is provided as the Horizon Factor. The user also provides the total duration of the simulation and the total number of time steps desired.
The problem is then solved using an initial guess vector and the Newton-Krylov algorithm provided in the scipy.optimize package.
The following python packages are required:
numpypyyamlscipy.optimizeThe following tools are optional
doxygendot## Usage
Where -i has to be the configuration in yaml format and -t is the type, which can be pd for peridynamic simulations and dic for processing results from digital image correlation.
The material parameters are described here
The available Type are until now Elastic and Viscoelastic.
The discretization and the nodes are described with
where Dim is the dimension of the node cloud, Final_Time the end time of the simulation, Time_Steps the amount of time steps, Horizon_Factor_m_value the m value of the horizon, Influence_Function the factor to scale the influence of the force withrespect to the distance of the horizon, and Name the file providing the node information in the CSV format with spaces as delimiter. An example for this file is provided here:
The shape for the load is given here
where Type describes the shape and Values specify the geometry of the shape.
Boundary conditions can be described with
where the Type either can be Force or Displacement, Value describes the value in Newton or Millimeter whis is applied at the nodes described in File, and Direction describes the direction (X=1,Y=2,Z=3) where the condition is applied. The file has to be provided in the CSV format with spaces as delimiter with the id of the nodes where the condition should be applied. Here, is an example for a file.csv
For writing simulation attributes the Output tag can be used.
For writing the simulation attributes to the CSV format the tag CSV is used.
Where Type specifies the attribute and File the file name of the output file.
For writing the simulation attributes to the VTK unstructured grid format the tag VTK is used
Where Path is the path for the output, Type specify the simulation attributes, which are considered for the output, and Slice defines that every n-th time step is written.
Here, Max_Iteration, Tolerance of the solver can be specified. With Jacobian_Perturbation the perturbation for assembly the Jacobian matrix is defined.
An example for an elastic material and an viscoelastic material is provided in the example folder
The code is licensed under the GNU General Public License v3.0 developed by Ilyass Tabiai, Rolland Delorme, and Patrick Diehl.
Based on a work at <a xmlns:dct="http://purl.org/dc/terms/" href="http://dx.doi.org/10.1016/S0022-5096(99)00029-0" rel="dct:source">http://dx.doi.org/10.1016/S0022-5096(99)00029-0.
1.8.12