"FEM Sliade Constraint" Analog for GSL Method in FEM Solver

   935   5   0
User Avatar
Member
20 posts
Joined: 1月 2019
Offline
Hello everyone!
I am doing a project where I need to make a plane of symmetry for simulation in FEM (approximately like in any CAE).
And at the same time I need to use a quasi-static approach with the old GSL method in FEM (because GNL can't work with Poisson's ratio normally).
Please tell me how I can make an analogue of Slide constraint for my conditions?
User Avatar
スタッフ
433 posts
Joined: 6月 2007
Offline
I would not recommend starting a new project for FEM that uses the GSL Solve Method. This mode is only included to allow for backward compatibility with old setups. The newer "GNL" Solve Method should work much better in most use cases.

Slide constraints were implemented specifically the GNL Solve Method. This slide-constraint implementation does not translate to the GSL Solve Method at all.

I'm assuming you're using Poisson's ratio to get good volume preservation.
In that case, I'd recommend using the GNL Solve Method (default) together with the Stable Neo-Hookean Variant (also default).

On working with Poisson's ratio:
Some FEM solvers expose Young's modulus E together with the Poisson ratio r.
However, Houdini's FEM solver exposes a different pair of controls, which are called "Shape Stiffness" and "Volume Stiffness", which were inspired by the Lamé constants. Given E and r, you may approximate these stiffness parameters as follows:

Shape Stiffness = E / 2(1 + r)
Volume Stiffness = E r / (1 + r)(1 - 2r)

This is a rough approximation, which is meaningful only for small deformations, just to give you an idea.
User Avatar
Member
20 posts
Joined: 1月 2019
Offline
michiel
I would not recommend starting a new project for FEM that uses the GSL Solve Method.

Thanks for the detailed answer!

Yes, I recalculate my input Young's Modulus and Poisson's ratio with the following function:

void convLamYoPu(export float lamb_1; export float mu_2; export float E_Young; export float puass; int mode) {
    if (mode == 0) {
        E_Young = mu_2 * (3.0 * lamb_1 + 2.0 * mu_2) / (lamb_1 + mu_2);//Wiki
        puass = lamb_1 / (2.0 * (lamb_1 + mu_2));//Wiki
    } else if (mode == 1) {
        lamb_1 = (puass * E_Young) / ((1.0 + puass) * (1.0 - 2.0 * puass));//Wiki
        mu_2 = E_Young / (2.0 + 2.0 * puass);//Wiki        
    }
}

I understand that FEM Solver in Houdini is not a replacement for classic CAE, and I am trying to figure out how to bypass some limitations so that my calculations are more accurate.

I have done a lot of testing to find the most optimal settings that give high accuracy for my problem with small deformations.

For the tests, I did a simple stretching of a (fairly long) bar and evaluate the degree of narrowing at a given stretch and relate it to a given value of Poisson's ratio.

I know about the Stable Neo-Hookean model, but in my test, the discrepancy with the specified Poisson's ratio was twofold, while low specified values ​​of the Poisson's ratio led to instability (formation of a degenerate neck)

With the settings that I specified in the first message, I get stable results in a wide range of Poisson's ratio values ​​and discrepancies in expected deformations of 10-20% maximum.

Please tell me, is it possible to access the specification of boundary conditions or degrees of freedom of finite element mesh nodes? (I still really want to implement the functionality of the plane of symmetry for the GSL method.)
Edited by Alt_stage - 2024年11月27日 12:28:11
User Avatar
スタッフ
433 posts
Joined: 6月 2007
Offline
Alt_stage
Please tell me, is it possible to access the specification of boundary conditions or degrees of freedom of finite element mesh nodes? (I still really want to implement the functionality of the plane of symmetry for the GSL method.)

If no constraints are applied to an FEM object, then each point of that object's simulation geometry contributes three degrees of freedom. There are no "hidden" degrees of freedom that are invisible or inaccessible to the user; all degrees of freedom are represented using points.

In a quasistatic simulation, the entire state of the modeled physical system would consist of the x/y/z coordinates of all points, which are stored in the "P" point attribute.
One way of adding boundary conditions is by creating the "pintoanimation" and setting it to 1 for the points that need to be constrained.
User Avatar
Member
20 posts
Joined: 1月 2019
Offline
michiel
In a quasistatic simulation, the entire state of the modeled physical system would consist of the x/y/z coordinates of all points, which are stored in the "P" point attribute.
One way of adding boundary conditions is by creating the "pintoanimation" and setting it to 1 for the points that need to be constrained.

I'm not quite sure how "pintoanimation" will help me implement what I want.
In the simplest case, I want the points in a certain part of my TET geometry to not move along one of the axes (say X), but to be free to move in the other two directions (say Y, Z).
If it's not too much trouble, could you explain to me how this can be done or point me to the appropriate page in the manual?
User Avatar
スタッフ
433 posts
Joined: 6月 2007
Offline
The "pintoanimation" feature works if you need to constrain X, Y and Z for certain points.
If you want to constrain a point to lie on a line or within a plane, you will need slide constraints, see

https://www.sidefx.com/docs/houdini/nodes/dop/femslideconstraint.html [www.sidefx.com]

As discussed earlier, these are only available in GNL solver mode and not in the deprecated GSL solver mode.
  • Quick Links