Skip to content

Commit

Permalink
Add strip bending example
Browse files Browse the repository at this point in the history
  • Loading branch information
mkraska committed Dec 30, 2015
1 parent 65efe54 commit fefbbf8
Show file tree
Hide file tree
Showing 27 changed files with 566 additions and 0 deletions.
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,8 @@ The examples usually require CalculiX 2.9, some of them might run with the bConv
width="200"
title="Tensile test, axisymmetric model, expanded in postprocessing, path plot demo">
](Drahtbiegen/Zug/)
[<img
src="Streifen/sh-def.png"
width="200"
title="Bending of an elastic strip, beam, shell and solid models with various rotation constraints">
](Streifen/)
48 changes: 48 additions & 0 deletions Streifen/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# 90°-Bending of an Elastic Strip

This example demonstrates the application of prescribed rotations to node sets.
The structure is an elastic flat strip of dimensions 100x10x1 mm³. One end is
fixed and one end is rotated by 90°. The strip thus is bent into a quarter
circle. We investigate the following cases:

* Beam model
* Shell model
* Solid model with mean rotation constraint
* Solid model with rigid body constraint.

| File | Contents |
| :------------- | :------------- |
| [b.fbd](b-pre.fbd) | CGX script, beam model |
| [b.inp](b.inp) | CCX input, beam model |
| [sh.fbd](sh-pre.fbd) | CGX script, shell model |
| [sh.inp](sh.inp) | CCX input, shell model |
| [def-plot.fbd](def-plot.fbd)| CGX deformation plot |

# Beam Model
In CGX, b3 elements are specified. This results in B23R elements in the CCX input. These are internally expanded into C3D20R.

The rotation is applied as constraint to dof 5 of the node at the free end of the beam. With the default convergence control settings, only 12% of the specified rotation are reached.
```
> cgx -b b.fbd
```
The script contains the pre-processing, solution and post-processing.

<img src="b-mesh.png" width="300" title="Beam model">
<img src="b-def.png" width="300" title="Residual forces">

<img src="b.png" width="600" title="Convergence plot">

# Shell Model
In CGX, qu8 elements are specified. This results in S8R elements in the CCX input. These are internally expanded into C3D20R.

The rotation is applied as constraint to dof 5 of the nodes at the free end of the strip. The solution converges very well. Due to the large rotations, only invariant stress measures like v. Mises or principal stresses are useful.
```
> cgx -b sh.fbd
```

<img src="sh-mesh.png" width="300" title="Shell model">
<img src="sh-def.png" width="300" title="Residual forces">

<img src="sh.png" width="600" title="Convergence plot">

# Solid Model
282 changes: 282 additions & 0 deletions Streifen/Streifen.sm
Original file line number Diff line number Diff line change
@@ -0,0 +1,282 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?application progid="SMath Studio Desktop" version="0.97.5346.24640"?>
<regions>
<settings>
<identity>
<id>5f9dfa4e-21bc-4f4f-a130-72afcd1e3015</id>
<revision>2</revision>
</identity>
<calculation>
<precision>4</precision>
<exponentialThreshold>5</exponentialThreshold>
<fractions>decimal</fractions>
</calculation>
<pageModel active="true" printAreas="true" simpleEqualsOnly="false" printBackgroundImages="true">
<paper id="1" orientation="Portrait" width="850" height="1100" />
<margins left="39" right="39" top="39" bottom="39" />
<header alignment="Center" color="#a9a9a9">&amp;[DATE] &amp;[TIME] - &amp;[FILENAME]</header>
<footer alignment="Center" color="#a9a9a9">&amp;[PAGENUM] / &amp;[COUNT]</footer>
<backgrounds />
</pageModel>
<dependences>
<assembly name="SMath Studio Desktop" version="0.97.5346.24640" guid="a37cba83-b69c-4c71-9992-55ff666763bd" />
<assembly name="Text Region" version="1.10.5346.31409" guid="485d28c5-349a-48b6-93be-12a35a1c1e39" />
<assembly name="Math Region" version="0.97.5346.24640" guid="02f1ab51-215b-466e-a74d-5d8b1cf85e8d" />
</dependences>
</settings>
<region id="0" left="18" top="18" width="65" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
<text lang="eng">
<p>Length </p>
</text>
</region>
<region id="1" left="126" top="18" width="82" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
<math>
<input>
<e type="operand">l</e>
<e type="operand">100</e>
<e type="operand" style="unit">mm</e>
<e type="operator" args="2">*</e>
<e type="operator" args="2">:</e>
</input>
</math>
</region>
<region id="2" left="225" top="18" width="119" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
<text lang="eng">
<p>Bending angle</p>
</text>
</region>
<region id="3" left="378" top="18" width="65" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
<math>
<input>
<e type="operand">α</e>
<e type="operand">90</e>
<e type="operand" style="unit">°</e>
<e type="operator" args="2">*</e>
<e type="operator" args="2">:</e>
</input>
</math>
</region>
<region id="4" left="18" top="36" width="86" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
<math>
<input>
<e type="operand">Thickness</e>
</input>
</math>
</region>
<region id="5" left="126" top="36" width="65" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
<math>
<input>
<e type="operand">h</e>
<e type="operand">1</e>
<e type="operand" style="unit">mm</e>
<e type="operator" args="2">*</e>
<e type="operator" args="2">:</e>
</input>
</math>
</region>
<region id="6" left="225" top="36" width="136" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
<text lang="eng">
<p>Young's modulus</p>
</text>
</region>
<region id="7" left="378" top="36" width="91" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
<math>
<input>
<e type="operand">E</e>
<e type="operand">210</e>
<e type="operand" style="unit">GPa</e>
<e type="operator" args="2">*</e>
<e type="operator" args="2">:</e>
</input>
</math>
</region>
<region id="8" left="18" top="54" width="53" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
<math>
<input>
<e type="operand">Width</e>
</input>
</math>
</region>
<region id="9" left="126" top="54" width="73" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
<math>
<input>
<e type="operand">b</e>
<e type="operand">10</e>
<e type="operand" style="unit">mm</e>
<e type="operator" args="2">*</e>
<e type="operator" args="2">:</e>
</input>
</math>
</region>
<region id="10" left="225" top="54" width="135" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
<text lang="eng">
<p>Poisson's ratio</p>
</text>
</region>
<region id="11" left="378" top="54" width="60" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
<math>
<input>
<e type="operand">ν</e>
<e type="operand">0.3</e>
<e type="operator" args="2">:</e>
</input>
</math>
</region>
<region id="12" left="288" top="81" width="131" height="41" color="#000000" bgColor="#ffffff" fontSize="10">
<math>
<input>
<e type="operand">ρ</e>
<e type="operand">l</e>
<e type="operand">α</e>
<e type="operator" args="2">/</e>
<e type="operator" args="2">:</e>
</input>
<contract>
<e type="operand" style="unit">cm</e>
</contract>
<result action="numeric">
<e type="operand">6.3662</e>
</result>
</math>
</region>
<region id="13" left="18" top="90" width="155" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
<text lang="eng">
<p>radius ofurvature </p>
</text>
</region>
<region id="14" left="288" top="117" width="145" height="41" color="#000000" bgColor="#ffffff" fontSize="10">
<math>
<input>
<e type="operand">ε</e>
<e type="operand">h</e>
<e type="operand">2</e>
<e type="operand">ρ</e>
<e type="operator" args="2">*</e>
<e type="operator" args="2">/</e>
<e type="operator" args="2">:</e>
</input>
<contract>
<e type="operand" style="unit">%</e>
</contract>
<result action="numeric">
<e type="operand">0.7854</e>
</result>
</math>
</region>
<region id="15" left="18" top="126" width="233" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
<text lang="eng">
<p>long. strain at the surface</p>
</text>
</region>
<region id="16" left="18" top="162" width="168" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
<text lang="eng">
<p>longitudinal stress</p>
</text>
</region>
<region id="17" left="288" top="162" width="135" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
<math decimalPlaces="0">
<input>
<e type="operand">σ</e>
<e type="operand">E</e>
<e type="operand">ε</e>
<e type="operator" args="2">*</e>
<e type="operator" args="2">:</e>
</input>
<contract>
<e type="operand" style="unit">MPa</e>
</contract>
<result action="numeric">
<e type="operand">1649</e>
</result>
</math>
</region>
<region id="18" left="18" top="180" width="241" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
<text lang="eng">
<p>(plane stress, at the edges)</p>
</text>
</region>
<region id="19" left="18" top="216" width="250" height="40" color="#000000" bgColor="#ffffff" fontSize="10">
<text lang="eng">
<p>longitudinal stress(plane strain, in the center)</p>
</text>
</region>
<region id="20" left="288" top="216" width="172" height="50" color="#000000" bgColor="#ffffff" fontSize="10">
<math decimalPlaces="0">
<input>
<e type="operand">σ</e>
<e type="operand">E</e>
<e type="operand">1</e>
<e type="operand">ν</e>
<e type="operand">2</e>
<e type="operator" args="2">^</e>
<e type="operator" args="2">-</e>
<e type="operator" args="2">/</e>
<e type="operand">ε</e>
<e type="operator" args="2">*</e>
<e type="operator" args="2">:</e>
</input>
<contract>
<e type="operand" style="unit">MPa</e>
</contract>
<result action="numeric">
<e type="operand">1812</e>
</result>
</math>
</region>
<region id="21" left="288" top="261" width="193" height="42" color="#000000" bgColor="#ffffff" fontSize="10">
<math>
<input>
<e type="operand">I</e>
<e type="operand">1</e>
<e type="operand">12</e>
<e type="operator" args="2">/</e>
<e type="operand">b</e>
<e type="operator" args="2">*</e>
<e type="operand">h</e>
<e type="operand">3</e>
<e type="operator" args="2">^</e>
<e type="operator" args="2">*</e>
<e type="operator" args="2">:</e>
</input>
<contract>
<e type="operand" style="unit">mm</e>
<e type="operand">4</e>
<e type="operator" args="2">^</e>
</contract>
<result action="numeric">
<e type="operand">0.8333</e>
</result>
</math>
</region>
<region id="22" left="18" top="270" width="151" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
<text lang="eng">
<p>Moment of inertia</p>
</text>
</region>
<region id="23" left="288" top="297" width="144" height="41" color="#000000" bgColor="#ffffff" fontSize="10">
<math decimalPlaces="0">
<input>
<e type="operand">M</e>
<e type="operand">E</e>
<e type="operand">I</e>
<e type="operator" args="2">*</e>
<e type="operand">ρ</e>
<e type="operator" args="2">/</e>
<e type="operator" args="2">:</e>
</input>
<contract>
<e type="operand" style="unit">N</e>
<e type="operand" style="unit">mm</e>
<e type="operator" args="2">*</e>
</contract>
<result action="numeric">
<e type="operand">2749</e>
</result>
</math>
</region>
<region id="24" left="18" top="306" width="127" height="24" color="#000000" bgColor="#ffffff" fontSize="10">
<text lang="eng">
<p>Bending moment</p>
</text>
</region>
</regions>
Expand Down
Binary file added Streifen/Streifen_001.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Streifen/b-def.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Streifen/b-mesh.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
29 changes: 29 additions & 0 deletions Streifen/b.fbd
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Large rotations, small strain
# beam model
pnt p1 0 0 0
seta fix se all
swep all rot tra 100 0 0 20

elty all be3
mesh all
send all abq
send all abq nam

send fix abq spc 123456
send rot abq spc 5 1.57

plot l all
plus n all
plus n fix b
plus n rot t
frame
hcpy png
sys mv hcpy_1.png b-mesh.png

sys ccx b
sys python ../Scripts/monitor.py b&

read b.frd
ds -0 e 4
read def-plot.fbd
sys mv hcpy_2.png b-def.png
21 changes: 21 additions & 0 deletions Streifen/b.inp
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
*include,input=all.msh
*boundary
*include,input=fix_123456.bou
** material definition
*material, name=steel
*elastic
210000,0.3,0
*beam section, elset=Eall, material=steel, section=rect
1,10
0,0,1
*STEP, NLGEOM
*STATIC
0.01,1,,0.01
*boundary
*include,input=rot_51.57.bou
*el file
S
*node file
U
*end step

Binary file added Streifen/b.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit fefbbf8

Please sign in to comment.