Outline of a program 'f90_fem_asnt.f90'
- This is a program for Axisymmetric Stress Analysis with the function of no-tension stress analysis.
- As a method to simulate no-tension state, Stress Transfer Method by Zienkiewicz is used. In this method, equilibrium state can be obtained by iterative calculation method using linear stiffness matrix and coordinate transformation method of internal forces. It is assumed that Poisson ratio in no-tension state element is zero.
- 4 noded isoparametric element with 4 Gauss points is used. 1 node has 2 degrees of freedom in axial direction and radius direction.
- Thickness of circumference direction of 1 element is 1 radian.
- Nodal forces, nodal displacements and nodal temperature changes can be given as loads. Inertia force can not be treated. If you give zero displacements to the nodes, it means completely restricted boundary.
- Only an isotropic material can be treated. However, since the tensile strength of a element is inputted as the element characteristic, when the tensile principal stress of an element exceeds the tensile strength of it, the behavior of the element turns into a behavior as a No-tension element which does not share tensile stress. If all elements have sufficiently large tensile strength, the behavior of a structure becomes a behavior as an elastic body.
- In coordinate system, z-direction is defined as axial direction and r-direction is defined as radius direction.
- Simultaneous linear equations are solved using Cholesky method for banded matrix. Although this solving process has iterative process for no-tension analysis, stiffness matrix is not changed using stress transfer method. Therefore, to create the triangular matrix is carried out only one time, and forward elimination and backward substitution process are repeated depending on the values of unbalanced forces.
- Convergence criterion is that the case ratio of displacement increment to total displacement for all degrees of freedom becomes less than 1$\times$10$^{-6}$. Upper limit of iteration is set to 2000 times.
- Input/Output file name can be defined arbitrarily with the format of 'csv' and those are inputted from command line of a terminal.
- Used language for program is 'Fortran 90' and used compiler is 'GNU gfortran.'
Workable condition | |
---|---|
Item | Description |
Element | Quadrilateral element |
Load | Specify the loaded nodes and load values |
Temperature | Specify the temperature changes for all nodes |
Inertia force | Specify the inertia forces as a ratio to gravity acceleration in only axial (z) direction for all elements |
Displacement | Specify the nodes and displacements at the nodes. Any values can be applied including zero |
No-tension materiale | Specify the tensile strengthes for all elements. If the value of maximum principal stress exceeds the tensile strength of an element, it is assumed that the element becomes no-tension material. |
Format for input data file ('csv' format)
comment # Comment NODT,NELT,MATEL,KOZ,KOR,NF,IPR # Basic values for analysis Em,po,gamma,gkz,alpha,ts # Material properties ....(1 to MATEL).... # node-1,node-2,node-3,node-4,matno # Element connectivity, Material set number ....(1 to NELT).... # (counterclockwise order of node numbers) z,r,deltaT # Node coordinates, Temperature change of node ....(1 to NODT).... # (z: axial direction, r: radius direction) nokz,rdis # Restricted node number and displacement in z-direction ....(1 to KOZ).... # (Omit data input if KOZ=0) nokr,rdis # Restricted node number and displacement in r-direction ....(1 to KOR).... # (Omit data input if KOY=0) node,fz,fr # Loaded node number, Load in z-direction, Load in r-direction ....(1 to NF).... # (Omit data input if NF=0)
NODT | : Number of nodes | Em | : Elastic modulus of element |
NELT | : Number of elements | po | : Poisson's ratio of element |
MATEL | : Number of material sets | gamma | : Unit weight of element |
KOZ | : Number of restricted nodes in z-direction | gkz | : Acceleration in z-direction (ratio to 'g') |
KOR | : Number of restricted nodes in r-direction | alpha | : Coefficient of thermal expansion of element |
NF | : Number of loaded nodes | ts | : Tensile strength of element |
matno | : Material set number | deltaT | : Temperature change of node |
IPR | : Output format of stresses (0 or 1) | ||
(0: Stresses for all Gauss points) | |||
(1: Average stresses of element) |
Notice
- Temperature changes are inputted as them of nodes ans they must be written in the same row written the node coordinates. For this item, temperature rising is positive.
- When tensile strength of element is not large and temperature decrease is large, equilibrium state may not be obtained because of indeterminate of structure.
- Restricted node means the node which has known (given) displacement. As a known (given) value of nodal displacement, any value can be given including zero for a restricted node.
Load input method
We consider the cylinder under the internal pressure. The cylinder has the radius of r=3000mm, the length in axial direction of z=200mm and internal pressure of p=1 N/mm$^2$ is acted. Total load acted to 1 element with thickness of 1 radian is shown below.
\begin{equation*} p\times r\times 1(rad)\times z=1(N/mm^2)\times 3,000(mm)\times 1(rad)\times 200(mm)=600,000(N) \end{equation*}So, below loads must be acted for each node according to the thinking of equivalent nodal force,
Coordinate of node | Nodal force | Direction of load |
---|---|---|
(z,r)=(0,3,000) | 300,000(N) | Positive radius direction |
(z,r)=(200,3,000) | 300,000(N) | Positive radius direction |
Format for output data file ('csv' format)
Comment NODT,NELT,MATEL,KOZ,KOR,NF,IPR (Each value for above items) *node characteristics node,z,r,fz,fr,fix-z,fix-r,rdis-z,rdis-r,deltaT node Node number z,r : z & r-coordinates fz,fr : z & r-direction nodal forces fix-z : z-direction restricted condition (1: restricted, 0: not restricted) fix-r : r-direction restricted condition (1: restricted, 0: not restricted) rdis-z : z-direction specified displacement rdis-r : r-direction specified displacement deltaT : Temperature change of node .....(1 to NODT)..... *element characteristics element,node-1,node-2,node-3,node-4,E,po,gamma,gkz,alpha,ts,matno element : Element number node-1,node-2,node-3,node-4 : Element-nodes relationship E : Elastic modulus of element po : Poisson's ratio of element gamma : Unit weight of element gkz : Acceleration in z-direction (ratio to 'g') alpha : Coefficient of thermal expansion of element ts : Tensile strength of element matno : material set number .....(1 to NELT)..... *displacement and force node,coord-z,coord-r,dist-z,dist-r,reac-z,reac-r,ftvec-z,ftvec-r node : Node number coord-z,coord-r : Coordinates of z & r-direction dist-z,dist-r : Displacement in z & r-direction reac-z,reac-r : Internal force in z & r direction ftvec-z,ftvec-r : Unbalanced force in z & r-direction .....(1 to NODT)..... *stresses element,kk,sig-z,sig-r,sig-t,tau-zr,ps1,ps2,ang,noten,matno element : Element number kk : Gauss point number (IPR=0: 1 to 4, IPR=1: Average stress of element) sig-z,sig-r,sig-t,tau-zr : Normal stresses in z & r & $\theta$-direction, shearing stress ps1,ps2,ang : 1st & 2nd principal stresses, principal direction (degree) noten : flag for No-tension (0: Elastic, 1: ps1=no-tension, 2: ps1 and ps2=no-tension) matno : Material set number .....(1 to NELT, depending on the value of IPR)..... NODT=(Number of nodes), nt=(nt), mm=(mm), ib=(ib) nnn=(Number of itaration), icount=(Number of converged degrees of freedom) Calculation time=(calculation time) Date_time=(date of execution) nt : Total degrees of freedom of FE equation mm : Dimension of reduced FE equation ib : band width of reduced FE equation
Comparison with theoretical solution
Consider the circular cylindrical shell with thick wall under uniform internal pressure and uniform external pressure in plane strain state. Material has the properties of elastic modulus $E=25,000N/mm^2$, Poisson' ratio $\nu=0.2$. $\sigma_r$, $\sigma_{\theta}$ and $u$ mean normal stress in radius direction, normal stress in circumference direction and displacement in radius direction for each.
(1) Axisymmetric FEM (f90_fem_asnt, 12 nodes, 5 elements) | |||||||||
---|---|---|---|---|---|---|---|---|---|
$a$ | $b$ | $P_a$ | $P_b$ | $\sigma_{r(a)}$ | $\sigma_{\theta(a)}$ | $\sigma_{r(b)}$ | $\sigma_{\theta(b)}$ | $u_a$ | $u_b$ |
3000 | 3600 | 1 | 0 | -0.873 | 5.420 | -0.078 | 4.624 | 0.667 | 0.628 |
4000 | 4800 | 1 | 0 | -0.873 | 5.420 | -0.078 | 4.624 | 0.890 | 0.838 |
5000 | 6000 | 1 | 0 | -0.873 | 5.420 | -0.078 | 4.624 | 1.112 | 1.047 |
3000 | 3600 | 0 | 1 | -0.127 | -6.420 | -0.922 | -5.624 | -0.754 | -0.732 |
4000 | 4800 | 0 | 1 | -0.127 | -6.420 | -0.922 | -5.624 | -1.005 | -0.976 |
5000 | 6000 | 0 | 1 | -0.127 | -6.420 | -0.922 | -5.624 | -1.256 | -1.220 |
(2) Theoretical solution | |||||||||
$a$ | $b$ | $P_a$ | $P_b$ | $\sigma_{r(a)}$ | $\sigma_{\theta(a)}$ | $\sigma_{r(b)}$ | $\sigma_{\theta(b)}$ | $u_a$ | $u_b$ |
3000 | 3600 | 1 | 0 | -1.000 | 5.545 | 0.000 | 4.545 | 0.668 | 0.628 |
4000 | 4800 | 1 | 0 | -1.000 | 5.545 | 0.000 | 4.545 | 0.890 | 0.838 |
5000 | 6000 | 1 | 0 | -1.000 | 5.545 | 0.000 | 4.545 | 1.113 | 1.047 |
3000 | 3600 | 0 | 1 | 0.000 | -6.545 | -1.000 | -5.545 | -0.754 | -0.732 |
4000 | 4800 | 0 | 1 | 0.000 | -6.545 | -1.000 | -5.545 | -1.005 | -0.976 |
5000 | 6000 | 0 | 1 | 0.000 | -6.545 | -1.000 | -5.545 | -1.257 | -1.220 |
Ratio (1)/(2) | |||||||||
$a$ | $b$ | $P_a$ | $P_b$ | $\sigma_{r(a)}$ | $\sigma_{\theta(a)}$ | $\sigma_{r(b)}$ | $\sigma_{\theta(b)}$ | $u_a$ | $u_b$ |
3000 | 3600 | 1 | 0 | 0.873 | 0.977 | -- | 1.017 | 0.999 | 1.000 |
4000 | 4800 | 1 | 0 | 0.873 | 0.977 | -- | 1.017 | 1.000 | 1.000 |
5000 | 6000 | 1 | 0 | 0.873 | 0.977 | -- | 1.017 | 0.999 | 1.000 |
3000 | 3600 | 0 | 1 | -- | 0.981 | 0.922 | 1.014 | 1.000 | 1.000 |
4000 | 4800 | 0 | 1 | -- | 0.981 | 0.922 | 1.014 | 1.000 | 1.000 |
5000 | 6000 | 0 | 1 | -- | 0.981 | 0.922 | 1.014 | 0.999 | 1.000 |
- In axisymmetric FEM model, number of division in radius direction is 5, and number of division is 1. Displacements in axial direction are restricted in order to satisfy the condition of plane strain state.
- In theoretical solution, normal stresses at inner surface and outer surface of wall are obtained under strict boundary conditions. The other hand, in axisymmetric FEM, normal stresses shown above tables are mean values of inner side element or outer side element. So, the difference is found between theoretical solution and results of axisymmetric FEM. But the difference is not so large.
- In displacement, the difference between theoretical solution and axisymmetric FEM result is small and it has the accuracy of 0.1%.
Comparison with 2D FEM
Model
- By axisymmetric FEM and 2D FEM, the comparison of results were performed.
- Characteristics of model for analysis is shown in following table.
- In axisymmetric FEM model, number of division in radius direction is the same value as 2D FEM. (number of division is 33)
- Stress state was plane strain.
- The comparable result was obtained by axisymmetric FEM and 2D FEM.
Results
(1) Axisymmetric FEM (f90_fem_asnt, 68 nodes, 33 elements) | |||||||
---|---|---|---|---|---|---|---|
$E_g$ | $\sigma_{cr}$ | $\sigma_{sa}$ | $\sigma_{sb}$ | $\sigma_{\theta g}$ | $\sigma_{r g}$ | $u_a$ | $u_b$ |
1 | -0.987 | 540.244 | 465.326 | 0.002 | -0.002 | 9.596 | 9.508 |
10 | -0.987 | 530.949 | 457.201 | 0.015 | -0.015 | 9.423 | 9.335 |
100 | -0.987 | 453.784 | 389.749 | 0.131 | -0.130 | 7.983 | 7.893 |
1000 | -0.987 | 197.260 | 165.513 | 0.550 | -0.511 | 3.195 | 3.102 |
10000 | -0.987 | 54.594 | 40.804 | 1.278 | -0.712 | 0.532 | 0.438 |
100000 | -0.987 | 33.539 | 22.399 | 6.558 | -0.630 | 0.139 | 0.044 |
(2) 2D plane strain FEM (f90_fem_plnt, 714 nodes, 660 elements) | |||||||
$E_g$ | $\sigma_{cr}$ | $\sigma_{sa}$ | $\sigma_{sb}$ | $\sigma_{\theta g}$ | $\sigma_{r g}$ | $u_a$ | $u_b$ |
1 | -0.987 | 539.839 | 465.177 | 0.002 | -0.002 | 9.590 | 9.502 |
10 | -0.987 | 530.549 | 457.058 | 0.015 | -0.015 | 9.417 | 9.329 |
100 | -0.987 | 453.437 | 389.645 | 0.131 | -0.130 | 7.978 | 7.889 |
1000 | -0.987 | 197.121 | 165.487 | 0.549 | -0.511 | 3.193 | 3.100 |
10000 | -0.987 | 54.576 | 40.806 | 1.278 | -0.711 | 0.532 | 0.437 |
100000 | -0.987 | 33.537 | 22.404 | 6.558 | -0.628 | 0.139 | 0.044 |
Ratio (1)/(2) | |||||||
$E_g$ | $\sigma_{cr}$ | $\sigma_{sa}$ | $\sigma_{sb}$ | $\sigma_{\theta g}$ | $\sigma_{r g}$ | $u_a$ | $u_b$ |
1 | 1.000 | 1.001 | 1.000 | 1.000 | 1.000 | 1.001 | 1.001 |
10 | 1.000 | 1.001 | 1.000 | 1.000 | 1.000 | 1.001 | 1.001 |
100 | 1.000 | 1.001 | 1.000 | 1.000 | 1.000 | 1.001 | 1.001 |
1000 | 1.000 | 1.001 | 1.000 | 1.002 | 1.000 | 1.001 | 1.001 |
10000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.001 | 1.000 | 1.002 |
100000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.003 | 1.000 | 1.000 |
Axisymmetric FEM model | 2D plane strain model |
---|---|
Model for analysis of whole area (wall thickness: 800mm) |
Axisymmetric FEM model | 2D plane strain model} |
---|---|
Model for analysis around concrete wall (wall thickness :800mm, double reinforcement bars) |
Programs and sample data
Shell script and f90 programs
Filename | Description |
---|---|
a_asnt.txt | a_asnt.txt |
f90_fem_asnt.f90 | f90_fem_asnt.f90 |
f90_num.f90 | f90_num.f90 |
f90_num_asnt.f90 | f90_num_asnt.f90 |
Input data smple for 'f90_asnt' (thick cylindrical shell model)
Filename | Description |
---|---|
inp_test_3000_ex.csv | inp_test_3000_ex.csv |
inp_test_3000_in.csv | inp_test_3000_in.csv |
inp_test_4000_ex.csv | inp_test_4000_ex.csv |
inp_test_4000_in.csv | inp_test_4000_in.csv |
inp_test_5000_ex.csv | inp_test_5000_ex.csv |
inp_test_5000_in.csv | inp_test_5000_in.csv |
Input data sample for 'f90_asnt' (reinforcing bar model)
Filename | Description |
---|---|
inp_as_dbl_1e0.csv | inp_as_dbl_1e0.csv |
inp_as_dbl_1e1.csv | inp_as_dbl_1e1.csv |
inp_as_dbl_1e2.csv | inp_as_dbl_1e2.csv |
inp_as_dbl_1e3.csv | inp_as_dbl_1e3.csv |
inp_as_dbl_1e4.csv | inp_as_dbl_1e4.csv |
inp_as_dbl_1e5.csv | inp_as_dbl_1e5.csv |
Input data sample for 'f90_plnt' (reinforcing bar model: for comparison)
Filename | Description |
---|---|
a_plnt.txt | a_plnt.txt |
inp_pl_dbl_1e0.csv | inp_pl_dbl_1e0.csv |
inp_pl_dbl_1e1.csv | inp_pl_dbl_1e1.csv |
inp_pl_dbl_1e2.csv | inp_pl_dbl_1e2.csv |
inp_pl_dbl_1e3.csv | inp_pl_dbl_1e3.csv |
inp_pl_dbl_1e4.csv | inp_pl_dbl_1e4.csv |
inp_pl_dbl_1e5.csv | inp_pl_dbl_1e5.csv |