Introducing springs to a point/face as a boundary condition

Numerical methods and mathematical models of Elmer
kevinarden
Posts: 2312
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Introducing springs to a point/face as a boundary condition

Post by kevinarden »

MoTN,

To target nodes for these boundary conditions I believe they have to be boundaries in your mesh.boundary file. In the last example look at boundary 5 in the mesh.boundary file. This is how you add a node to it. I add it by editing the file. The format is

Boundary element#, Boundary Number, element attached, element attached, element type (101 is a point), Node#

9 5 1 0 101 9

Also the mesh.header file is changed to read the boundary element

Kevin
mika
Posts: 236
Joined: 15 Sep 2009, 07:44

Re: Introducing springs to a point/face as a boundary condition

Post by mika »

kevinarden wrote: 16 Apr 2020, 11:43 To target nodes for these boundary conditions I believe they have to be boundaries in your mesh.boundary file.
I would like to recall that if one wishes to add springs (or masses) by using a group identifier of 1-dimensional elements (nodes) as

Boundary Condition X
Target Boundary(1) = ...
Spring 1 = ...
Spring 2 = ...
Spring 3 = ...
...
End

the file mesh.boundary must naturally define this group of elements. On the other hand the target nodes version as

Boundary Condition Y
Target Nodes(n) = ...
Spring 1 = ...
Spring 2 = ...
Spring 3 = ...
...
End

should work regardless of what mesh.boundary contains (it works based on the content of mesh.nodes file). So no need to edit the mesh files in the latter case.

-- Mika
kevinarden
Posts: 2312
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Introducing springs to a point/face as a boundary condition

Post by kevinarden »

Thanks Mika,

But I have not been able to get that to work. Also I still am unable to get displacements in the vtu file. Attached is MoTN's case with all of the 0 eigenvalues removed with constraints.
motn.zip
(1.88 KiB) Downloaded 235 times
EigenSolve: Computed 6 Eigen Values
EigenSolve: --------------------------------
EigenSolve: 1: 6.566180E+01 0.000000E+00
EigenSolve: 2: 5.928763E+04 0.000000E+00
EigenSolve: 3: 1.462589E+05 0.000000E+00
EigenSolve: 4: 7.279436E+05 0.000000E+00
EigenSolve: 5: 1.340368E+06 0.000000E+00
EigenSolve: 6: 1.410136E+06 0.000000E+00

If you have some time perhaps you can point out where I am going wrong.

Kevin
Last edited by kevinarden on 16 Apr 2020, 17:02, edited 1 time in total.
kevinarden
Posts: 2312
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Introducing springs to a point/face as a boundary condition

Post by kevinarden »

Mika,
You are correct on the boundary target node. It does not have to be added to mesh.boundary. I must have been doing something wrong earlier. It does work. However, I am doing something wrong to get displacements in vtu.

Kevin
mika
Posts: 236
Joined: 15 Sep 2009, 07:44

Re: Introducing springs to a point/face as a boundary condition

Post by mika »

For generating vtu output in the case of eigenanalysis see the example eigenanalysis.sif at

https://github.com/ElmerCSC/elmerfem/tr ... s_Cylinder
mika
Posts: 236
Joined: 15 Sep 2009, 07:44

Re: Introducing springs to a point/face as a boundary condition

Post by mika »

mika wrote: 16 Apr 2020, 13:50 perhaps you can point out where I am going wrong.
- In section Solver 1 add (to replace the default component names of the shell solver)

Variable = U

- In section Solver 2 change

Displacement Variable Name = U

- In section Solver 3 remove

Vector Field 1 = String eigenvector

Then I get output.

-- Mika
kevinarden
Posts: 2312
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Introducing springs to a point/face as a boundary condition

Post by kevinarden »

Works, thanks

Update case file for MoTN case
motn.zip
(1.88 KiB) Downloaded 248 times
MoTN
Posts: 16
Joined: 17 Mar 2020, 04:25
Antispam: Yes
Location: Canada

Re: Introducing springs to a point/face as a boundary condition

Post by MoTN »

Thank you very much Kevin and Mika, you two have been the most helpful!
I see that the last file "MoTN.zip" works very well and gives meaningful results; its first eigenvalue is sensitive to the spring coefficient proportionally, while the rest vary as I change Young's modulus. Also, the results are not sensitive to the target node on either side (either node 8 or 2 gives the same results). They, however, change if I set Target node = 9 (the center node); I cannot explain why though.

Quantitatively speaking, for the given system parameters I expect that:

I=Density * 1/12 * L*W*h*(h^2+W^2)=3.7651;
where Density = 3.2478e4 kg/m^3, L=0.8128 m, W= 0.4064 m, and h=25.4e-3 m
Ky= Spring 5 = 4019;
Hence,
eigenValue[1]=K/I=4019/3.7651=1.0675e+03

But the first eigenvalue I obtained via Elmer is 6.697305E+01.

could you please help me to reconcile this as well?
kevinarden
Posts: 2312
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Introducing springs to a point/face as a boundary condition

Post by kevinarden »

I understand the rotational inertia to be MW^2 * 1/12 but your h is so small it does not change the answer.

I went back to the test case previously posted since it is a 1x1 square I set the thickness to 1 and density to 100. removed the lumped masses. Now it is a unit cube with mass = 100. I set the springs to 100, 200, 300, etc. so the modes would come out in order of DOF.

The rotational X (4) and Rotational Y (5) should be 48 and 60 using my equation, however they come out to be 24 and 30. So your equation must be correct. It matches the test case.
The translations come out as 1, 2, and 3 which is expected.
The zero mode is rotation Z (6) which the shell element is not defined.
EigenSolve: Computed 6 Eigen Values
EigenSolve: --------------------------------
EigenSolve: 1: -4.135867E-10 0.000000E+00
EigenSolve: 2: 9.999996E-01 0.000000E+00
EigenSolve: 3: 1.999999E+00 0.000000E+00
EigenSolve: 4: 2.999995E+00 0.000000E+00
EigenSolve: 5: 2.399960E+01 0.000000E+00
EigenSolve: 6: 2.999937E+01 0.000000E+00
EigenSolve: --------------------------------
test.sif
(2.03 KiB) Downloaded 230 times
Last edited by kevinarden on 17 Apr 2020, 12:42, edited 1 time in total.
kevinarden
Posts: 2312
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Introducing springs to a point/face as a boundary condition

Post by kevinarden »

I went and looked at the displacements and the plate was rotating about X not Y. I changed the spring to Spring 4 (thought to be rotation X but is actually Y). Took out the restraints on the rigid body modes so the first real mode is 1065.5 which matches the calculation.

So rotation x and y are switched.

EigenSolve: Computed 6 Eigen Values
EigenSolve: --------------------------------
EigenSolve: 1: -5.115953E-10 0.000000E+00
EigenSolve: 2: 1.075463E-08 0.000000E+00
EigenSolve: 3: 1.065494E+03 0.000000E+00
EigenSolve: 4: 6.162329E+04 0.000000E+00
EigenSolve: 5: 3.866650E+05 0.000000E+00
EigenSolve: 6: 1.722540E+06 0.000000E+00
EigenSolve: --------------------------------
rotate_y.sif
(2.12 KiB) Downloaded 199 times
Post Reply