Topic: Isogeometric Analysis with OOFEM
Dear Borek,
I am working on isogeometric analysis with OOFEM. I read your article “From the finite element analysis to the isogeometric analysis in an object oriented computing environment” and make an imitation of the second example, the dome problem. I solve the problem in the following codes:
dome.out
dome problem
LinearStatic nsteps 1
domain 3d
OutputManager tstep_all dofman_all element_all
ndofman 18 nelem 1 ncrosssect 1 nmat 1 nbc 2 nic 0 nltf 1
node 1 coords 4 4.5826 2 0 1 bc 3 0 1 1
node 2 coords 4 4.5826 2 -4.5826 0.70711 bc 3 0 1 0
node 3 coords 4 0 2 -4.5826 1 bc 3 1 1 0
node 4 coords 4 3.5439 4.3796 0 0.8875 bc 3 0 0 1
node 5 coords 4 3.5439 4.3797 -3.5439 0.62756 bc 3 0 0 0
node 6 coords 4 0 4.3796 -3.5439 0.8875 bc 3 1 0 0
node 7 coords 4 1 4.899 0 1 bc 3 1 2 1
node 8 coords 4 1 4.899 -1 0.70711 bc 3 1 2 1
node 9 coords 4 0 4.899 -1 1 bc 3 1 2 1
node 10 coords 4 5.6569 2 0 1 bc 3 0 1 1
node 11 coords 4 5.6568 2 -5.6568 0.70711 bc 3 0 1 0
node 12 coords 4 0 2 -5.6569 1 bc 3 1 1 0
node 13 coords 4 4.3512 5.1742 0 0.8875 bc 3 0 0 1
node 14 coords 4 4.3511 5.1742 -4.3511 0.62756 bc 3 0 0 0
node 15 coords 4 0 5.1742 -4.3512 0.8875 bc 3 1 0 0
node 16 coords 4 1 5.9161 0 1 bc 3 1 2 1
node 17 coords 4 1 5.9161 -1 0.70711 bc 3 1 2 1
node 18 coords 4 0 5.9161 -1 1 bc 3 1 2 1
nurbs3delement 1 nodes 18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 mat 1 crossSect 1 knotvectoru 2 0 1 knotmultiplicityu 2 3 3 knotvectorv 2 0 1 knotmultiplicityv 2 3 3 knotvectorw 2 0 1 knotmultiplicityw 2 2 2 degree 3 2 2 1 nip 64
#
SimpleCS 1
#
IsoLE 1 d 0. E 15.0e3 n 0.25 tAlpha 0.000012
BoundaryCondition 1 loadTimeFunction 1 prescribedvalue 0.0
BoundaryCondition 2 loadTimeFunction 1 prescribedvalue -1.0
ConstantFunction 1 f(t) 1.0
The followings are some of the contents in the "dome.out" file:
Node 1 ( 1):
dof 1 d 2.74486392e-01
dof 2 d 0.00000000e+00
dof 3 d 0.00000000e+00
Node 2 ( 2):
dof 1 d 2.74218982e-01
dof 2 d 0.00000000e+00
dof 3 d -2.74218982e-01
Node 3 ( 3):
dof 1 d 0.00000000e+00
dof 2 d 0.00000000e+00
dof 3 d -2.74486392e-01
……
……
element 1 ( 1) :
GP 0.1 : strains 1.5911e-02 -9.1999e-02 5.7544e-02 6.2356e-04 8.5080e-03 -6.2483e-03
stresses 7.9671e+01 -1.2153e+03 5.7927e+02 3.7413e+00 5.1048e+01 -3.7490e+01
GP 0.2 : strains 1.8127e-02 -5.9082e-02 5.4940e-02 3.3446e-03 7.5267e-03 -3.3329e-02
stresses 3.0143e+02 -6.2507e+02 7.4319e+02 2.0068e+01 4.5160e+01 -1.9997e+02
GP 0.3 : strains 2.0544e-02 -2.3147e-02 5.1953e-02 6.3152e-03 6.4264e-03 -6.2893e-02
stresses 5.4263e+02 1.8344e+01 9.1954e+02 3.7891e+01 3.8558e+01 -3.7736e+02
……
……
R E A C T I O N S O U T P U T:
_______________________________
Node 1 iDof 2 reaction 0.0000e+00 [bc-id: 1]
Node 1 iDof 3 reaction 0.0000e+00 [bc-id: 1]
Node 2 iDof 2 reaction 0.0000e+00 [bc-id: 1]
Node 3 iDof 1 reaction 0.0000e+00 [bc-id: 1]
Node 3 iDof 2 reaction 0.0000e+00 [bc-id: 1]
Node 4 iDof 3 reaction 0.0000e+00 [bc-id: 1]
Node 6 iDof 1 reaction 0.0000e+00 [bc-id: 1]
Then, I have some questions to ask:
1. Every control node has a weight, when the weight is 1, the control node lay on the geometry, and when the weight is not 1, the control node doesn’t lay on the geometry. So my first question is how to add boundary conditions. In the dome example, control nodes 7, 8, 9, 16, 17, 18 form the surface that subjected to a vertical displacement, is it right to set their bc conditions all to” bc 3 1 2 1”?
2. Then I use "./oofem –f dome.in –c" and get "dome.out" and "dome.out.1.0.osf". Part of the contents of dome.out is shown above, which means that a nonzero result that changing with integration point is obtained. However, when I use oofeg to make it become visible, the geometry and deformed geometry can be seen in oofeg. When I try to display variable plot, such as Sxx,Syy, the whole geometry has the same color and I cannot figure out why. Is this because I only use one element? My operating process of oofeg is "Active step-->NextStep, Mesh Plot-->Geom Plot, View-->Render-->Normal, Variable plot-->Scalar plot-->Stress/Force plot-->Sxx Stress/Force plot".
In input file "dome.in", we can see that oofem consider a single patch as one nurbs3delement. I want to know in the process of analysis in oofem, an element is a single patch or a single knot span?
3. I want to use IGA to solve vibration problems. Is oofem able to get the vibration mode of geometries using IGAElements and can oofeg do the visualization?
4. At last, I notice that IGAElement is the unsupported element geometry type that can do a VTK export. So I recommend to add the function which can export the IGA geometry and the variable plot to VTK export.