Skip to content

Commit 2148939

Browse files
committed
3-point bending example added
1 parent 12975c8 commit 2148939

16 files changed

+310
-1
lines changed

NonLinear/3PB/Biegung.inp

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
*include, input=all.msh
2+
*include, input=xsym.nam
3+
*include, input=ysym.nam
4+
*include, input=load.nam
5+
*include, input=support.nam
6+
*include, input=part1.nam
7+
*include, input=part2.nam
8+
*include, input=part3.nam
9+
*boundary
10+
Nxsym,1
11+
Nysym,2
12+
Nsupport,3
13+
**surface definitions
14+
*include, input=c1a.sur
15+
*include, input=c1s.sur
16+
*include, input=c2a.sur
17+
*include, input=c2s.sur
18+
*material, name=alu
19+
*elastic
20+
72000,0.3
21+
*plastic
22+
160,0
23+
215,0.04
24+
500,0.3
25+
*material, name=steel
26+
*elastic
27+
210000,0.3
28+
** material assignment to bodies
29+
*solid section, elset=Epart1, material=alu
30+
*solid section, elset=Epart2, material=steel
31+
*solid section, elset=Epart3, material=steel
32+
** contact definitions
33+
*surface interaction, name=tool
34+
*surface behavior, pressure-overclosure=linear
35+
100000,1,1
36+
***friction
37+
**0.1,1e7
38+
*contact pair, interaction=tool, type=surface to surface
39+
Sc1a,Sc1s
40+
Sc2a,Sc2s
41+
*step,nlgeom
42+
*static
43+
0.01,1,0.00001,0.02
44+
*boundary
45+
Nload,3,3,-20
46+
*node file
47+
U
48+
*el file
49+
S,PE
50+
*node print, nset=Nload, totals=only
51+
RF
52+
*end step

NonLinear/3PB/Biegung.png

140 KB
Loading

NonLinear/3PB/README.md

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Three-point bending test pf a hollow profile
2+
Tested with CGX/CCX 2.10
3+
4+
+ Non-linear static analysis
5+
+ Plasticity
6+
+ Penalty contact
7+
+ Symmetry reduction
8+
9+
File | Contents
10+
:------------- | :-------------
11+
[par.pre.fbl](par.pre.fbl) | CGX script, pre-processing, parametrized with `param.py`
12+
[post.fbl](post.fbl) | CGX script, post-processing
13+
[Biegung.inp](Biegung.inp) | CCX input
14+
[df.gpl](df.gpl) | Gnuplot control file for the force-displacement plot
15+
16+
The model represents a three point bending test on a elasto-plastic beam with a hollow box section. The simulation
17+
domain is reduced to a quarter due to symmetry.
18+
19+
## Pre-Processing
20+
21+
You may adjust the parameter values in the file [par.pre.fbl](par.pre.fbl) and then run
22+
```
23+
> ../../Scripts/param.py par.pre.fbl
24+
> cgx -b pre.fbl
25+
```
26+
<img src="Refs/parts.png" width="400" title="Parts: Specimen, indenter and support">
27+
28+
<img src="Refs/groups.png" width="400" title="Node groups for constraint application">
29+
<img src="Refs/pairs.png" width="400" title="Contact pairs">
30+
31+
The load application cylinders are controlled by imposed displacements to the nodes in the y=0 plane.
32+
33+
## Solving
34+
The time step has to be limited for stable contact. Initially, the number of contact
35+
elements grows with increasing indentation, but then shrinks due to local buckling below the indenter.
36+
```
37+
> ccx Biegung
38+
> ../../Scripts/monitor.py Biegung
39+
```
40+
<img src="Biegung.png" title="Convergence plot">
41+
42+
## Post-Processing
43+
A movie showing the contact details:
44+
```
45+
> cgx -b cpost.fbl
46+
```
47+
<img src="movie.gif" title="contact zone">
48+
49+
```
50+
> cgx -b post.fbl
51+
```
52+
The plastic strain is displayed, the color bar is restricted to 0...4%.
53+
54+
<img src="Refs/PE.png" title="Equivalent strain">
55+
<img src="Refs/PEexpanded.png" title="Equivalent strain, expanded model">
56+
57+
<img src="Refs/PEexpanded_y.png" width="400" title="Equivalent strain, expanded model"><img src="Refs/PEexpanded_yx.png" width="400" title="Equivalent strain, expanded model">
58+
59+
A force-displacement-curve is generated:
60+
<img src="Refs/df.png" title="Force-Displacement Curve">

NonLinear/3PB/Refs/PE.png

17.9 KB
Loading

NonLinear/3PB/Refs/PEexpanded.png

11 KB
Loading

NonLinear/3PB/Refs/PEexpanded_y.png

8.29 KB
Loading

NonLinear/3PB/Refs/PEexpanded_yx.png

15.8 KB
Loading

NonLinear/3PB/Refs/df.png

6.21 KB
Loading

NonLinear/3PB/Refs/groups.png

6.85 KB
Loading

NonLinear/3PB/Refs/pairs.png

10.7 KB
Loading

NonLinear/3PB/Refs/parts.png

18.8 KB
Loading

NonLinear/3PB/cpost.fbl

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
read Biegung.frd
2+
3+
view disp
4+
view elem
5+
rot x
6+
rot c 90
7+
rot l 10
8+
zoom 4
9+
plot f all n
10+
max 0.04
11+
min 0
12+
anim real on
13+
movi frames auto
14+
ds 1 ah

NonLinear/3PB/df.gpl

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
set term png
2+
set grid
3+
set xlabel "Displacement in mm"
4+
set ylabel "Force in kN"
5+
#set yrange [-100:100]
6+
#set nokey
7+
#set key top left
8+
set out "Refs/df.png"
9+
set parametric
10+
set dummy t
11+
set trange [0:1]
12+
set samples 2
13+
plot 1.85*t, 46*t title "Theoretical elastic range" w lp,\
14+
"total force fx,fy,fz_NLOAD.txt" using ($1*20):(-4*$4/1000) title "FEA simulation" w l
15+
set out #

NonLinear/3PB/par.pre.fbl

+113
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# <th=4>
2+
# <wi=200>
3+
# <he=50>
4+
# <le=250>
5+
# <l2=40>
6+
# <lr=wi+2*th> lenthe of the indenter
7+
# <ro=20> radius of the intenter
8+
# <ra=6>
9+
# <cs=10> width of contact region
10+
# part
11+
pnt py 0 <wi/2> 0
12+
swep all new tra 0 <-th> 0 2
13+
swep all new1 tra 0 0 <he/2-ra> 6
14+
pnt pr 0 <wi/2-ra> <he/2-ra>
15+
swep new1 new2 rot pr x 90 6
16+
swep new2 new3 tra 0 <-wi/2+ra> 0 10
17+
seta bl l L00A L009
18+
bia bl 5
19+
copy all new mir z
20+
swep all new4 tra <cs> 0 0 4
21+
swep new4 new5 tra <le-2*cs> 0 0 20
22+
swep new5 new6 tra <2*cs> 0 0 4
23+
swep new6 new7 tra <l2-cs> 0 0 4
24+
seta part1 se all
25+
26+
# center indenter
27+
seto part2
28+
pnt p1 0 0 <he/2>
29+
pnt p2 <ro> 0 <he/2+ro>
30+
pnt pc 0 0 <he/2+ro>
31+
line l12 p1 p2 pc 6
32+
line lc1 pc p1
33+
line l2c p2 pc
34+
surf s1 l12 l2c lc1
35+
swep part2 new tra 0 <lr/2> 0
36+
copy part2 ind1 rot pc y -90
37+
setc
38+
# support part
39+
seto part3
40+
copy part2 sup1 tra 0 0 0
41+
copy part3 sup2 mir x
42+
move part3 tra <le> 0 <-he-2*ro>
43+
setc
44+
# meshing
45+
#div part1 auto
46+
elty all he8i
47+
mesh all
48+
merg n part1
49+
merg n part2
50+
merg n part3
51+
# boundary conditions
52+
seta nodes n all
53+
enq nodes ysym rec _ 0 _ 0.1
54+
enq nodes xsym rec 0 _ _ 0.1
55+
# enq nodes load rec 0 _ <he/2> 0.1
56+
# enq nodes support rec <le> _ <-he/2>
57+
# enq nodes tmp rec 0 _ 0 15
58+
# enq tmp side rec 0 _ _ 1
59+
seta npart2 n part2
60+
enq npart2 load rec _ 0 _ 0.1
61+
seta npart3 n part3
62+
enq npart3 support rec _ 0 _ 0.1
63+
send all abq
64+
send all abq nam
65+
# contact surfacess
66+
seta c1a s A00L A00I
67+
comp c1a do
68+
comp c1a do
69+
send c1a abq sur
70+
seta c1s s A034
71+
comp c1s do
72+
comp c1s do
73+
send c1s abq sur
74+
seta c2a s A02B A028
75+
comp c2a do
76+
comp c2a do
77+
send c2a abq sur
78+
seta c2s s A03J A03T
79+
comp c2s do
80+
comp c2s do
81+
send c2s abq sur
82+
#seta ! all
83+
view elem
84+
seta ! all
85+
86+
view elem
87+
rot -x
88+
rot c 90
89+
rot r 30
90+
rot u 30
91+
frame
92+
zoom 1.5
93+
text Parts
94+
seta ! all
95+
hcpy png
96+
sys mv hcpy_1.png Refs/parts.png
97+
98+
text Node groups
99+
plot n ysym r
100+
plus n xsym r
101+
plus n load b
102+
plus n support k
103+
hcpy png
104+
sys mv hcpy_2.png Refs/groups.png
105+
106+
view back
107+
text Contact pairs
108+
plot f c1a
109+
plus f c1s n
110+
plus f c2a
111+
plus f c2s n
112+
hcpy png
113+
sys mv hcpy_3.png Refs/pairs.png

NonLinear/3PB/post.fbl

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
read Biegung.frd
2+
read part1.nam inp
3+
comp Npart1 do
4+
# todo: parametrize the theoretical solution
5+
sys ../../Scripts/dat2txt.py Biegung
6+
sys gnuplot df.gpl
7+
8+
view disp
9+
view elem
10+
11+
rot y
12+
frame
13+
14+
rot l 70
15+
rot u 10
16+
zoom 1.5
17+
# plastic strain
18+
ds -0 e 1
19+
plot fv Npart1
20+
min 0 f
21+
max 0.04 f
22+
text Plastic strain
23+
hcpy png
24+
sys mv hcpy_1.png Refs/PE.png
25+
view elem off
26+
copy all new mir x
27+
copy new new1 mir y
28+
plot fv Npart1
29+
plus e new n
30+
plus e new1 n
31+
rot y
32+
rot r 80
33+
rot u 10
34+
frame
35+
zoom 2
36+
max 0.04
37+
min 0
38+
hcpy png
39+
sys mv hcpy_2.png Refs/PEexpanded.png
40+
rot y
41+
frame
42+
hcpy png
43+
sys mv hcpy_3.png Refs/PEexpanded_y.png
44+
frame
45+
zoom 4
46+
rot y
47+
rot r 20
48+
rot u 10
49+
hcpy png
50+
sys mv hcpy_4.png Refs/PEexpanded_yx.png

README.md

+6-1
Original file line numberDiff line numberDiff line change
@@ -119,4 +119,9 @@ For editing CGX and CCX input under linux, I recommend [atom](https://atom.io/),
119119
src="Linear/ShearCenter/Refs/Sxz.png"
120120
width="200"
121121
title="Thin-walled profiles to illustrate the shear center">
122-
](Linear/ShearCenter/)
122+
](NonLinear/3PB/)
123+
[<img
124+
src="Linear/ShearCenter/Refs/PEexpanded_yx.png"
125+
width="200"
126+
title="Three-point bending of a hollow profile, elastic-plastic">
127+
](NonLinear/3PB/)

0 commit comments

Comments
 (0)