Table Load Sims

I have built a kitchen table base - hickory and aluminum - with the idea of putting a glass top on it. I want to know whether the piece of glass that I have designed will be strong enough under normal and abnormal but reasonable abuse - standing on it to change a lightbulb, for example.

I uploaded the model into the public area “Sveta’s Table” and I have done my best to puzzle out how to run a simulation, but I’m stuck with the “Boundary Constraints” warning and I don’t know how to clear it. Running the Sim produces a zero stress output, so I definitely did something wrong.

I’m a wood hacker and electrical engineer, so all this FEA stuff is both familiar and strange - I’d appreciate a few pointers on how to proceed.

Once I have simple gravity sorted out, I need to add what happens if someone leans on a corner, stands on top, or tries to move the table by pulling on it.

Thanks for whatever help you all can give

Doug

3 Likes

Hi @dbailey,
very interesting project! I like that it’s such a hands-on usage of SimScale!
I am definitely willing to help where I can. I’ll have a look at the current project and will post my findings!

Just for completeness, here’s the link of the original project: SimScale

Best,
Richard

2 Likes

HI @dbailey,

so I got some first results. They can be regarded as a preliminary study:

The problem with your simulation was, that you defined the gravity vector as (0,0,10), but left the magnitude of gravity at 0. This actually put a zero gravity, thus no stresses. The warning was just about a load that you created but didn’t assign an entity to it (probably just created by accident since your first sim should be gravity only, I guess),

Most importantly, I used a 2nd order mesh for all simulations, this is very important since we are dealing with a very thin structure in bending, where 1st order elements suffer from locking effects (which leads to an under-estimation of stresses). Additionally I changed the analysis type to Static Analysis - advanced since in almost all cases the better choice (the Static Analysis is still the default for historical reasons - probably this will be changed soon).

I did a small comparative study of varying complexity such that we first get the most realistic constraint conditions with the least amount of complexity necessary. On total 4 different setups:

  1. Plate only, connections to legs fixed (realistic if plate glued to legs and glue is “hard” compared to the glass)
  2. Plate only, pinned support on leg connections (realistic if plate glued to legs and glue is “soft” compared to glass)
  3. Plate only, pinned with sliding directions free, elastic support for numerical stabilization (realistic if no glue and friction is negligible)
  4. Plate and legs, frictionless contact (same as 3., much higher computing resource needs, but represents stress concentrations correctly on contact zone around legs.)
  5. (not yet done). Plate and legs, frictional contact (most realistic, friction value can be adapted to measurements, highest computing costs)

Here some comparisons for the stresses on 100x scaled deformation:

Fixed support

Pinned support

Pinned with sliding

Frictionless contact

Best regards,
Richard

3 Likes

Hi Richard

thank-you! I really appreciate your help with this.

The design choices still to be made are:

  1. The thickness of the glass - I’m assuming 0.75 inches in the model. It’s 370 lbs as designed, which is already heavy.
  2. Whether to use a UV-set cyano glue to connect the glass to the legs.This presents a problem for disassembly (if ever) and it’s scary to do. My countertop glass came out perfect using the cyano, but it gives me the eebie-jeebies doing something that can’t tolerate a screw-up, or a bubble so I’d prefer just to rest the glass on the legs if it’s safe to do that.
  3. How far from the benches I place the edge of the table. 1" gap would be fine, 3" is awkward. The design targets 1".

I’m hoping that the sims inform these choices.

The standoffs are 3" dia x 2" solid aluminum with a 1.5" x 3/8 threaded center. They form a nut that is screwed onto a threaded rod that passes the length of the leg, The main legs are 3" x 24" aluminum pipe with a 1/8" wall thickness. They terminate in 1/4" deep holes in the wood, with 3" dia steel washers in the holes to prevent the aluminum digging into the wood. Hickory is hard - 4000psi - but I didn’t want to risk it wobbling in sheer. There’s a nut hidden in the foot of each leg on the other end of the threaded rod that I torqued up to 20 lb-ft, and I might give them a bit more torque before I put the glass on it to make sure that it does not loosen up when 100 lbs compressive force per leg gets added to the stack.

I managed to get the simulation to work when I bonded the legs to the table top. When I left them unbonded, the simulation gave me an error.

The results are not so dramatic as Richard’s above, which is odd, but maybe because I’m looking at them wrong or with some kind of scaling problem.

I have been trying to figure out how to apply an uneven load on the table top. It seems to be fine with distributed loads, but I can’t find a way to apply a load to one section only of the table top.

Hi @dbailey,

you could use a loading function as given in this example from @ahmedhussain18:

Functional load on a table

You could also adapt the function for your needs and define own functions that approximate the loading behaviour as realistic as possible.

Does that help you?

Best,

Jousef

Hi @dbailey,
the idea of @jousefm could indeed work, but I would not use the formula/table option for a load in order to apply the load only on a part of the model. Usually this functionality is used to either ramp a load w.r.t. time or if the nature of the load itself forces us to use a space-dependent load (for example hydro-static pressure).

In theory we could also restrict the load to a certain part of the geometry by using a space-dependent load function, but it is not easy to make sure that the actual total load you want to apply is actually correctly transferred to the model and generally the value could depend on the mesh (even if a distributed load type is used since the function values are only evaluated on the nodes and integrated accordingly).

Until now, the only reliable way to restrict a load to certain part of the model is to model this as an actual face in your CAD tool by splitting the original faces. How this can be best achieved depends on the actual CAD tool you are using.

Best,
Richard

OK - I suspected that. I played with the variable load idea and I agree that it’s tough to figure out how to apply it and be confident that it’s correctly applied. I think that I’ll take your advice and simple add a model of a cylinder at various points on the table and re-do the mesh. I’ll make the cylinder big so I can hack the material density to change the load through a range.

Do you have any advice on why my simulation only passes when I bond the legs to the glass and fails when the legs are free to move?

Doug

Hi @dbailey,
there is no need (other than if you want to investigate the stresses on the contact zone near the cylinder), to use and actual cylinder placed at different positions in the model in order to insert loads at specific areas of the table.

You can use you cad tool to split the table surface on those locations where you would later want to add a load. The best would be to include all different locations in to one CAD model (this would save you a lot of time since you only need to create one mesh and basically one simulation, it also makes the results more comparable). I used this technique to imprint the contact zones from the legs to the table in the simulations without legs (static on feet - plate only):

The problem you encounter with the sliding table is a common error in a static FEA analysis. In your case the table was resting on the feet with a sliding contact. This constrained its motion in Z-direction but left it totally unconstrained in X- and Y-directions. Intuitively, this should not be a problem. As there is no force in X- or Y-direction, the table should not move in any of those directions and thus does not need a fixation.

The problem: if you use a direct solver for the linear system, it will fail since it can’t invert the matrix. This will always happen if you can move a part of the system without using any force.
You can in theory circumvent this matrix inversion problem by using an iterative solver, which does not need matrix inversion. The problem with this is that for a numerical analysis is, there is never exactly zero forces, rather something like 1e-18. So if you would use an iterative solver, it would probably work, but most likely your table would slide 100m away.

To solve this issue we introduced a constraint called elastic support. It basically allows you to anchor parts of the system with soft springs such that it does not cause the singularity issues and still is soft enough to not influence the results. I used this also in the simulation static on feet - contact with feet.

Best,
Richard

2 Likes

Richard - thank-you again for your help. I tried adding thin cylinders and chose rubber as the material, thinking that I could apply force to them without affecting the flex of the underlying glass top. However, the simulation won’t complete - memory issues with 4 cores and a mystery failure with 32.

I’m not a cad expert, but I think that I understand what you are suggesting - make cylinders and fit them seamlessly into the top of the table rather than rest them above as I did with the pads, and simply call them “glass”, the same as the top and bond them into the top. I’m using the Autodesk 123app; hopefully I can achieve that with the package.

Doug

Hi @dbailey,
I guess this video explains how to split faces in fusion360 using some tool objects: Use the split face tool - YouTube

Best,
Richard

Ideal - done! I was easier than I thought to just create some splits in the face. Thanks for the tip.

I restarted my simulation with the splits, but no loads, to see if it will work out. Once I get a positive answer from that, I should be able to apply loads to the split segments.