Yeah, normally simpler elements like 1D and 2D are better when starting such studies but not really in the case if CalculiX where they are expanded to solids anyway.
Arenât you fixing those DOFs??
Same thoughtâŚ
Same thoughtâŚ
It doesnât affect the calculation of the stiffness matrix itself since those are evaluations of material properties at integration points - see https://www.rpi.edu/~des/4NodeQuad.pdf
However, as mentioned by others, ccx expands the elements and creates boundary conditions at the expanded nodes to emulate the behavior of the geometrically simplified elements. If you are interested in getting more accurate numbers for the matrices, you should perhaps use matlab/octave/maxima/python to get those.
Once more the answer is in the manual:
6.2.22 Eight-node plane stress element (CPS8 and CPS8R)
The eight node plane stress element is a general purpose plane stress element.
It is actually a special case of shell element: the structure is assumed to have a
symmetry plane parallel to the x-y plane and the loading only acts in-plane. In
general, the z-coordinates are zero. Just like in the case of the shell element, the
plane stress element is expanded into a C3D20 or C3D20R element. Figures 68
and 69 apply. From the above premises the following conclusions can be drawn:
⢠The displacement in z-direction of the midplane is zero. This condition is
introduced in the form of SPCâs. MPCâs must not be defined in z-direction!
⢠The displacements perpendicular to the z-direction of nodes not in the
midplane is identical to the displacements of the corresponding nodes in
the midplane.
the plane stress condition is imposed using SPCs in the solution process, thatâs why the displacements and stresses are correct, however the stiffness matrix is generated at a previous step in the program. As you donât have access to the expanded nodes in the input deck I do not think there is a way to âfixâ this but to create the model using 3D elements and imposing on them the plane stress restrictions.
Calculix expansions is a powerful and surprisingly efficient approach but one have always to keep in mind its particularities especially when using strategies from commercial codes.
Hi,
Maybe out of the topic but I would distinguish between results been correct and results been equal.
Ccx deliver equal results for the inplane components but wrong out of plane.
This is a plane stress element which theoretically should not deliver stress in zz component. If one request the OUTPUT 3D solution one can see that apart from a nonsense displacement the szz values are nonzero. Not sure if those BC may affect the right construction of the Stiffness Matrix.
This is how the SolidSpy Stifness MAtrix could be obtained with ccx.
CPS4 but Ortothropic with zero Young Modulus on z direction so Plain Stress condition can be fullfilled no matter how the user apply the BC.
** Generated by Mecway 23
*NODE
1,0,0.001,0
2,0.005,0.001,0
3,0.005,-0.001,0
4,0,-0.001,0
*ELEMENT,TYPE=CPS4
1,2,1,4,3
*NSET,NSET=N1
1
2
3
4
*ELSET,ELSET=Default
1
*MATERIAL,NAME=Steel
*ELASTIC,TYPE=ENGINEERINGCONSTANTS
210000000000,210000000000,0,0.3,0,0,80769000000,80769000000
80769000000
*SOLID SECTION,ELSET=Default,MATERIAL=Steel
0.001
*BOUNDARY
1,1,,0
1,2,,0
4,1,,0
4,2,,0
*STEP
*STATIC,SOLVER=PARDISO
*CLOAD
3,1,1000000
2,1,1000000
*NODE FILE,GLOBAL=YES,OUTPUT=2D
U,S
*END STEP
*STEP
*SUBSTRUCTURE GENERATE
*RETAINED NODAL DOFS,SORTED=NO
N1,1,2
*SUBSTRUCTURE MATRIX OUTPUT,STIFFNESS=YES,OUTPUT FILE=USER DEFINED,FILE NAME=MatrixMecway_ORTHO
*ENDSTEP
Result
**
** GENERATION OF SUBSTRUCTURE
*USER ELEMENT,NODES= 4,LINEAR
** ELEMENT NODES
** 2, 2, 3, 3,
1
2, 2
3, 1
4, 2
*MATRIX,TYPE=STIFFNESS
0.9807673076923E+08,
0.3749994230769E+08, 0.2030768923077E+09,
-0.5192288461538E+08,-0.2884557692308E+07, 0.9807673076923E+08,
0.2884557692308E+07,-0.1869230923077E+09,-0.3749994230769E+08, 0.2030768923077E+09,
@Disla That seems pretty bad CPS4 has non-zero ZZ stress. I tried refining the mesh and the ZZ stress increases! Seems like you have to use orthotropic material to get actual plane-stress in a CPS4 element?
S4 shell doesnât seem to have this problem and is maybe a better âplane stressâ element?
100% agree with you there.
Take a look at the previous response from @JuanP74. If you are imposing zero displacement in Z at the mid-plane, which is enforced in the form of SPCâs at the (-t/2, t/2) nodes, it will mean that you will have zz stresses for sure at those nodes.
I start to think that this is a bug in how the element is coded or internally constrained.
If thatâs true, that could be the problem ÂżIsnât it?. The element should be able to freely expand in z direction.
the manual says that displacement at the middle plane is zero in z direction, this is due to symmetry, meaning that same (symmetrical) displacement has to exist in âupper faceâ nodes and âlower faceâ nodes but not equal to zero, otherwise the plane stress condition (Szz=0) will not be kept. The actual value of z displacement of nodes is not known but they have to be equal (opposite sign). in the case of nodes in the middle plane (CPS8) this is easy as here they have to be zero. But for CPS4, with no nodes in the middle plane one would have to use MPCs and not SPCs so I am not sure what ccx is doingâŚ
My guess it is imposing a symmetrical solution with Szz != 0 that is correct for in plane stresses disregarding the condition of Szz=0. Simpler than imposing an MPC, the symmetrical solution can be imposed with SPCs if an arbitrary value is chosen.
A CPS8 element test should be done in order to check if it has zero Szz stress. This would probably confirm my guess.
2nd order.
Symmetrical displacement constain is applied but not for the face as a âwholeâ. Diferent nodes have different z displacement .
EDITED: The following view may seem strange but I have just removed the x and y displacements (although they exist) just to focus on the z displacement.
The answer is on gen3dfrom2d.f:
! for linear elements and plane stress it is not
! sufficient to set the z-displacement of the
! midplane nodes to zero, since these are not used.
! Instead, the sum of the z-displacement of the
! boundary plane nodes are set to zero:
! w_1+w_3=0
I found that both CPS8 and CPS4 have non-zero ZZ stress but itâs only significant when the thickness is large compared to the feature size (eg. the whole mesh here, and at stress singularities), so perhaps itâs OK as long as youâre using it to model something where the plane stress approximation actually applies.
But why would you? Itâs using 3D anyway so whatâs the point of enforcing plane stress instead of just letting the fully 3D stress state appear and leaving the faces unconstrained? Maybe in the 1960âs that made sense but I donât see what value it has in CCX today.
Perhaps not even in the 60âs. The benefit of reducing the stress tensor components from 6 to 3 does not exist because all components are currently computed and the benefit of imposing Plane stress regardless of the userâs boundary conditions and thickness doesnât seem properly enforced.
I donât know if I overlooked something but I donât see any difference with an ordinary 3D shell calculation where the user must carefully ensure the Plane Stress by himself with appropriate boundary conditions and small thicknesses.
I have modified a previous post of mine because the figure shown in jbrâs pdf would not imply Plane Stress conditions in ccx either.
I find ccx approach consistent. However I miss some remarks in the manual relative to this and maybe in the output Szz could be just set = 0. to avoid confusions.
Iâm certain Guido had valid reasons for this design choice at the outset of CCX. Perhaps, initially, there wasnât a plan to incorporate 1D & 2D simplifications. To begin with, opting for volume elements like hexahedra & tetrahedra likely streamlined the coding process compared to managing numerous elements with varying degrees of freedom, among other complexities. As far as I can recall, his book primarily covers the volume elements.
It could be beneficial to provide more clarity in the manual regarding expansions, MPCs/SPCs, and boundary conditions to preempt future queries.
From my pont of view that could be really confussing and misleading. I personally have a better understanding of CPS4 now thanks to the fact that it delivers szz different from =0. Itâs telling that one must pay more attention to BC to fullfill Plane Stress condition.
Note my first reaction to the post was calling attention to the fact that something squeaks when a user chooses an element of plane stress together with an inappropriate thickness and a fixed BC at the base. If CPS is basically a 3D element, I would accept it with its limitations and advantages but never altering or manually changing the results.
Agree.
Maybe we can add a warning to the output when certain elements are used to inform the user what to expect and to ensure they are not applying BCs in certain directions. But again, the user should also read the manual and understand that before running simulations naĂŻvely.