## [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

## [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

(OP)

Hi,

May I ask if someone knows how to edit the degrees of freedom for each node in Strand 7? I have built a thin 3-D shell structure in Strand 7 which is ready for static analysis. And I adopted Tri6 plate to mesh the surface. The default freedom condition is set to all free condition, which means there are six degrees of freedom for each node (three translation and three rotation). However, a plate bending finite element would only have the out-of-plane deflection and two rotations not the twist (only three degrees of freedom per node). May I ask how to manage this through Strand 7? I have attached the ST7 file to this post. Much appreciated if someone could do me a favour.

Kind Regards,

Ryan

May I ask if someone knows how to edit the degrees of freedom for each node in Strand 7? I have built a thin 3-D shell structure in Strand 7 which is ready for static analysis. And I adopted Tri6 plate to mesh the surface. The default freedom condition is set to all free condition, which means there are six degrees of freedom for each node (three translation and three rotation). However, a plate bending finite element would only have the out-of-plane deflection and two rotations not the twist (only three degrees of freedom per node). May I ask how to manage this through Strand 7? I have attached the ST7 file to this post. Much appreciated if someone could do me a favour.

Kind Regards,

Ryan

## RE: [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

Also I'd suggest experimenting with a much smaller model!

Doug Jenkins

Interactive Design Services

http://newtonexcelbach.wordpress.com/

## RE: [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

Thanks for your kind reply. I think the problem is about the selection of the plate type. And selecting plate/shell element would have six degrees of freedom automatically. Also, may I ask what do you mean by experimenting a smaller model? Should I choose Tri3 or Quad4 plate rather than Tri6 plate?

Kind Regards,

Ryan

## RE: [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

For setting up a simpler model I just meant create one with about 10 elements, rather than 19,138, to see if they work.

I still don't know why you want to reduce the number of degrees of freedom anyway though.

Doug Jenkins

Interactive Design Services

http://newtonexcelbach.wordpress.com/

## RE: [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

- Your mesh is not entirely comprised of 6-node triangles - you also have a lot of 8-node quads.
- You have a lot of "almost coincident" nodes, which are separated by very small distances.
- A lot of the elements (especially those near the "ridge line") are quite heavily warped and / or have very small internal angles.
- There are a lot of areas where it looks like you have overlapping shell surfaces - typically quad elements which are over-laid by a corresponding re-mesh of triangles. (Try "shrinking" the elements by 5% - 10% and you should see the effect where 2 triangles overlie a single quad element more clearly.)

Nevertheless, the mesh analyses satisfactorily using default solver settings, and without making any changes to the default degrees of freedom. Note that the linear static solver does a "drilling" check when you use default solver settings, and in this case, it fixes 29,856 drilling degrees of freedom.From the on-line help manual:

To detect and suppress drilling degrees of freedom, the following procedure is used.If only one principal rotational stiffness is less than the Stiffness Multiplier times the maximum principal rotational stiffness, the lowest principal stiffness is assumed to be a drilling singularity (i.e. insufficient rotational stiffness about the calculated direction), as long as the node connects only to plate/shell elements. If the drilling singularity is detected, the rotational stiffness in the drilling direction is replaced by a new value equal to the Stiffness Multiplier times the maximum principal rotational stiffness.

http://julianh72.blogspot.com

## RE: [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

Thank you so much for your advice.

The DOF problem is Ok as I initially thought we used the simplest plate bending element here, which only requires three DOF (one out-of-plane translational displacement plus two rotations bending the plane.

Thanks again for your valuable suggestion

Kind Regards,

Ryan

## RE: [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

In my experience, Strand7's Auto-mesh tool will generate only a single "layer" of plate-shell elements per CAD geometry surface - but if you have two surfaces which are coincident, you can end up with two overlapping meshes of plate-shell elements. You often need to "clean" imported CAD geometry in Strand7 before running the Auto-mesher - but you'll need to decide what to do with coincident surfaces. (E.g. retain and mesh both, or delete one, or delete both.)

For overlapping meshes of the type you have (quad elements overlain by a congruent pair of triangles), no, the mesh cleaning tool won't delete the overlap. However, it is a fairly trivial exercise to manually select all quad elements and delete them, for example.

You can use the "Show Plate Free Edges" and "Show Plate T-Junctions" tools to highlight areas where you have problems with overlapping and / or "floating" elements. Using a "Shrink" of 5% to 10% can also make it easier to spot partially overlapping elements.

Strand7's tools for importing and auto-meshing CAD geometry are very useful, but can be limited if the CAD geometry is not ideally suited for automatic meshing. Fine geometric detail will tend to generate very fine local meshes, with the possibility of high aspect ratios and / or highly warped elements. You often need to simplify and / or "de-feature" the CAD geometry (remove geometric vertices, edges and surfaces that you don't actually NEED to mesh; remove fillets which are too small to be relevant for your analysis; merge closely adjacent vertices into a single vertex; etc) before auto-meshing it.

http://julianh72.blogspot.com

## RE: [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

Thank you so much for your kind advice. You are such a kind person!

My geometry was generated by Grasshopper and its mesh was quadrilateral in Rhinoceros. After I imported the IGES file into Strand 7, I re-meshed it with 6-node triangle.

I have fixed the problems of different types of elements and there are no overlapping surfaces now. The new file is attached to this reply. Could you please have a quick look to see if it is good enough to conduct the linear test?

Kind Regards,

Ryan

## RE: [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

I would suggest quad8 elements when dealing with curved surfaces, instead of the tri elements. I always avoid tri elements if they are not required, obviously auto meshing puts them in at certain locations.

I had a look at the geometry that is in your model. I think there may have been many cutting planes and/or surface features which may have caused the initial meshing issues. I think that revising your geometry in the CAD interface will fix many of your problems. I managed to fix your geometry by using beam elements around the perimeter of the geometry and thereafter deleting your initial geometry and developing a new one from the beam elements. This produced a far better quality FEA mesh in my opinion. I am not sure if your apex is supposed to look the way it does, but the elements do not link up to the geometry, the method I described produced a surface that tied up to the geometry. Have a look at the "points and lines" tools I find them very useful for fixing geometry.

Keep in mind that it is always not required that the mesh be fine everywhere, it needs to be evaluated. in general all meshing software will develop very fine meshes at interfaces, for example if you had a beam coming into a tank, at the interface of the beam and tank the mesh will be extremely fine and will become coarser as you move away from the interface. I think Strand7 may have struggled to do this due to the quantity of faces in the geometry.

I normally start with a coarse mesh to get the model up and running and then refine once I have something working. This is a good way of doing things especially if you are going to use the more complex solvers.

## RE: [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

When a global stiffness matrix is developed the restrained degrees (supports) of freedom are essentially taken out for the global stiffness matrix. If for example you have restrained rotation on an element that does not allow rotation, thus implying that there is no row and column on the local stiffness matrix that pertains to rotation. The system will not remove any row and column since none of them pertain to the rotation. Strand7 will normally prompt you about this in the log file.

I may have misunderstood your comment about the degrees of freedom, but I just explained what I thought you were getting at. I hope it helps

## RE: [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

Your imported geometry has 1080 vertices and 1118 faces. I don't know the mathematical description of the actual shell surfaces you are modeling (spherical, parabolic, hyperbolic, etc - but I believe the Sydney Opera House shells use spherical segments for construction efficiency), but I suspect the true geometry can probably be defined with just a handful of faces and vertices. E.g. one spherical surface for each side face, and perhaps a few additional surfaces to model the ridge line and perimeters of the shell faces, if the geometry or thickness is different in these areas.

This approach would be preferable for FEA meshing, because it would allow you to auto-mesh an initial coarse mesh for quick trial purposes (e.g. mesh each side of the shell with say 8 x 8 8-node quads), and then once you are satisfied the basic model is working as expected, you can refine the mesh until you have the required level of detail and accuracy.

Your geometry seems to have some irregularities near the ridgeline, especially at the apex of the shell, and this is leading to some badly warped elements in this area, which I suspect are not part of the actual intended geometry. It is not obvious to me whether these irregularities were created when you created the basic geometry in Grasshopper, or were created when you created a surface mesh in Rhinoceros.

http://julianh72.blogspot.com

## RE: [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

Thank you so much for your suggestions.

Yes, I used Strand 7 auto-surface meshing tool to construct the mesh. This is not the original Sydney Opera House roof but a simpler geometry generated by form-finding tools in Grasshopper. Therefore, I don't actually have mathematical expressions for this geometry.

I tried to smooth the geometry in Rhino before importing into Strand 7, which can result in smoother modelling of the top ridge (apex). However, this does not help improve the surface meshing in Strand 7. I cleaned the geometry first with minimum feature length of 0.03, then surface mesh the geometry. But there are a large number of nodes concentrating in some areas (especially near the ridge). I followed the online tutorial but have no idea why it can't solve the problem. I have attached my IGES file as well as the .st7 file to this reply.

Kind Regards,

Ryan

## RE: [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

## RE: [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

For an analysis like this, I would suggest you "take control" of your geometry, rather than using a free-form modeller. E.g. use a spherical surface for the two main side faces, and perhaps a simple cylindrical surface for the ridge-line. You can probably create a good model by drawing a cross-section with two circular curves and a straight chord at the ridge, and then revolve this to create a shell. A bit of slicing-and-dicing, and you're done!

Think also about symmetry - you can probably just model one side face and half the ridge-line, which is less work to model. Import the half-model, mesh it in Strand7, and then mirror it on the centreline to create the full shell.

http://julianh72.blogspot.com

## RE: [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

Thank you for your reply. What would happen if the mesh is now uniformly distributed? Will it generate unintended stresses or forces?

I tried it again. First cleaned the geometry, then manually created the plate elements connecting the vertices. And it yields to a much simpler model, only with 491 plates. And I am able to manipulate with the irregularities on the ridgeline by manually drawing better triangles. The advantage is that I could avoid very fine meshes at some locations, whilst the drawback is that the geometry is much coarser compared to the original one. I ran the model and it gave me clearer patterns for some parameters like stress and moment. But apparently it gave me very different values from the old model. May I ask if this means this new model works better than the old one? I have attached the new model to this reply.

Many thanks,

Ryan

## RE: [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

As an example of what I am suggestting - please take a look at the attached PDF file, which creates a MUCH cleaner geometry and mesh than your methods. I used OnShape as my CAD modeller, but pretty well any 3D CAD package could do this.

I created a 2D sketch as shown in Section AA - two offset circular arcs, two straight segments, and some governing dimensions. I then revolved this sketch around the horizontal axis, and then sliced it as shown on the side elevation to leave me a shell which superficially resembles yours (but I haven't tried to scale it to match). I then exported a STEP geometry file, which I imported into Strand7, and then did a coarse auto-mesh using Quad8 elements as the "target". This mesh should analyse MUCH faster and with fewer spurious results than the distorted meshes which your geometry is generating.

The coarse auto-mesh has only 115 8-node Quad elements, but they conform precisely to the imported geometry, and it is a trivial exercise to re-mesh with a much finer mesh if required.

http://julianh72.blogspot.com

## RE: [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

http://julianh72.blogspot.com

## RE: [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

http://julianh72.blogspot.com

## RE: [Strand 7] How to fix some degrees of freedom for a node element in Strand 7?

Thank you so much! This really helps.

Kind Regards,

Ryan