Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Getting it ready for 0.2.1 #32

Merged
merged 3 commits into from
Oct 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
- [Running simulations](#Running-simulations)
* [Two-particle with wall](#Two-particle-with-wall)
* [Compressive test](#Compressive-test)
* [Attrition tests](#Attrition-tests)
* [Single particle deformation](#Single-particle-deformation)
- [Visualizing results](#Visualizing-results)
- [Developers](#Developers)

Expand Down Expand Up @@ -88,7 +90,7 @@ yielding of the system. For more details, we refer to
| Compressive test simulation |


### Attrition tests - Particles in a rotating container
### Attrition tests
We consider mix of different particles in a rotating container. Particles considered include circular, triangular, hexagonal, and drum shaped. Particles come in large and small shapes (their sizes are purturbed randomly). In order to to introduce diversity of material properties, we considered large particles to be tougher compared to the smaller ones. Setup files are in [examples/PeriDEM/attrition_tests](./examples/PeriDEM/attrition_tests)

| <img src="./assets/attrition_test_sim1.gif" width="250"> | <img src="./assets/attrition_test_sim2.gif" width="250"> |
Expand All @@ -99,6 +101,9 @@ Complex container geometries can be considered as well. For example, the image b

<img src="./examples/PeriDEM/attrition_tests/sim4_multi_particle_circ_tri_drum_hex_with_rotating_rectangle_container_with_protrusion_and_opening_within_bigger_rectangle_container/init_view.png" width="600">

### Single particle deformation
We can use `PeriDEM` executable or `Peridynamics` executable in `apps` directory to simulate the deformation of single particle/structure using peridynamics. See [examples/README.md](./examples/README.md) and [examples/Peridynamics](./examples/Peridynamics) folder.

## Brief implementation details
The main implementation of the model is carried out in the model directory [dem](./src/model/dem).
The model is implemented in class [DEMModel](./src/model/dem/demModel.cpp).
Expand Down Expand Up @@ -362,4 +367,4 @@ You can also cite the PeriDEM using zenodo doi:

## Developers
- [Prashant K. Jha](https://prashjha.github.io/)
(pjha.sci@gmail.com, prashant.jha@austin.utexas.edu, prashant.jha@port.ac.uk)
(pjha.sci@gmail.com, prashant.jha@sdsmt.edu)
2 changes: 1 addition & 1 deletion apps/peridynamics/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
#include <taskflow/taskflow/algorithm/for_each.hpp>

/*!
* @brief Namespace to define peridynamics apps that is meant to simulate single particle deformation.
* @brief Namespace to define peridynamics app for single particle deformation.
*/
namespace peridynamics {

Expand Down
82 changes: 82 additions & 0 deletions examples/Peridynamics/circle/input_0.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
Model:
Dimension: 2
Discretization_Type:
Spatial: finite_difference
Time: central_difference
Final_Time: 1.000000e-02
Time_Steps: 20000
Particle_Sim_Type: Single_Particle
# Zone block is optional
# For Single_Particle simulation, zone = 1 is fixed
Zone:
Zones: 1
# Particle block is not needed if mesh file is provided but if we are creating mesh
# using in-built function, we need geometry information within this block
Particle:
# optional
Test_Name: test_peridynamics
Zone_1:
Type: circle
Parameters: [3.000000e-03, 0.000000e+00, 0.000000e+00, 0.000000e+00]
Mesh:
Zone_1:
File: mesh_cir_1_0.msh
Material:
Zone_1:
Type: PDState
Horizon: 6.000000e-04
Density: 1.200000e+03
Compute_From_Classical: true
K: 2.160000e+05
G: 1.296000e+05
Gc: 5.000000e+02
Influence_Function:
Type: 1
Displacement_BC:
Sets: 2
Set_1:
Region:
Geometry:
Type: rectangle
Parameters: [-0.001, -0.001, 0, -0.0005, -0.0005, 0]
Direction: [1,2]
Time_Function:
Type: constant
Parameters:
- 0.0
Spatial_Function:
Type: constant
Zero_Displacement: true
Set_2:
Region:
Geometry:
Type: rectangle
Parameters: [0.0005, 0.0005, 0, 0.001, 0.001, 0]
Direction: [1,2]
Time_Function:
Type: linear
Parameters:
- 0.005
Spatial_Function:
Type: constant
Output:
Path: ./out/
Tags:
- Displacement
- Velocity
- Force
- Force_Density
- Damage_Z
- Damage
- Nodal_Volume
- Zone_ID
- Particle_ID
- Fixity
- Force_Fixity
- Theta
Output_Interval: 1000
Compress_Type: zlib
Perform_FE_Out: true
Perform_Out: true
Debug: 3
Tag_PP: 0
Loading
Loading