[SOLVED] Modelling thin membranes

Numerical methods and mathematical models of Elmer
Post Reply
Posts: 52
Joined: 12 May 2016, 13:15
Antispam: Yes

[SOLVED] Modelling thin membranes

Post by CrocoDuck » 25 Jul 2016, 12:28

Hi guys! I am approaching the modelling of a headphone loudspeaker membrane, which is 20 um thick. I was wondering what is the best way to make the CAD model of the membrane. Is it advisable to model it just as a surface or I should make a whole solid?
Last edited by CrocoDuck on 02 Aug 2016, 19:00, edited 1 time in total.

Posts: 52
Joined: 12 May 2016, 13:15
Antispam: Yes

Re: Modelling thin membranes

Post by CrocoDuck » 26 Jul 2016, 18:26

I ended up modelling the membrane as a shell and I tried to use this (although the shape is not flat). It works but it gives weird results. I expect the fundamental eigenvalue to be around few kHz, while I get one as low as 16 Hz. The linear elasticity solver gives values more in the range I expect, but that way I cannot set the thickness... Using a full 3D model of the membrane, with thickness, seems not to be wise as the meshing becomes hard to get right...

EDIT: Seems like I am not the first one thinking about these problems. I will try that. Sorry for the duplicate thread...

Posts: 52
Joined: 12 May 2016, 13:15
Antispam: Yes

Re: Modelling thin membranes

Post by CrocoDuck » 27 Jul 2016, 12:12

Hey there! This seems to give a solution (I am searching for eigenvalues of the speaker membrane):

Code: Select all

  Mesh DB "." "."
  Include Path ""
  Results Directory ""

  Max Output Level = 5
  Coordinate System = Cartesian
  Coordinate Mapping(3) = 1 2 3
  Simulation Type = Steady state
  Steady State Max Iterations = 1
  Output Intervals = 1
  Timestepping Method = BDF
  BDF Order = 1
  Solver Input File = case.sif
  Post File = case.vtu
Coordinate Scaling = 0.001

  Gravity(4) = 0 -1 0 9.82
  Stefan Boltzmann = 5.67e-08
  Permittivity of Vacuum = 8.8542e-12
  Boltzmann Constant = 1.3807e-23
  Unit Charge = 1.602e-19

Body 1
  Target Bodies(1) = 2
  Name = "Body 1"
  Equation = 2
  Material = 1

Solver 1
  Equation = ShellSolver
  Eigen System Values = 10
  Eigen System Select = Smallest magnitude
  Procedure = "ShellSolve" "ShellSolver"
  Eigen Analysis = True
  Exec Solver = Always
  Stabilize = True
  Bubbles = False
  Lumped Mass Matrix = False
  Optimize Bandwidth = True
  Steady State Convergence Tolerance = 1.0e-6
  Nonlinear System Newton After Tolerance = 1.0e-3
  Nonlinear System Newton After Iterations = 20
  Nonlinear System Max Iterations = 1
  Nonlinear System Convergence Tolerance = 1.0e-5
  Nonlinear System Relaxation Factor = 1.0
  Linear System Solver = Direct
  Linear System Iterative Method = UmfPack

Equation 1
  Name = "Elasticity"

Equation 2
  Name = "Plates"
  Active Solvers(1) = 1

Material 1
  Name = "Mylar"
  Tension = 0.0
  Poisson ratio = 0.35
  Youngs modulus = 620000000
  Thickness = 0.00002
  Youngs modulus = 620000000
  Poisson ratio = 0.35
  Porosity Model = Always saturated
  Density = 1360

Boundary Condition 1
  Target Boundaries(1) = 1 
  Deflection 1 = Real 0
  Deflection 2 = Real 0
  Deflection 3 = Real 0
  Deflection 4 = Real 0
  Deflection 5 = Real 0
  Deflection 6 = Real 0

However, the eigenvalues are still not in the range I expect:

Code: Select all

EigenSolve: 1:    9.836939E+05   0.000000E+00
EigenSolve: 2:    2.162239E+06   0.000000E+00
EigenSolve: 3:    2.171148E+06   0.000000E+00
EigenSolve: 4:    8.896226E+06   0.000000E+00
EigenSolve: 5:    8.914394E+06   0.000000E+00
EigenSolve: 6:    9.561661E+06   0.000000E+00
EigenSolve: 7:    9.612378E+06   0.000000E+00
EigenSolve: 8:    1.017967E+07   0.000000E+00
EigenSolve: 9:    1.025543E+07   0.000000E+00
EigenSolve: 10:    1.338364E+07   0.000000E+00
As the ShellSolver is not documented I have few questions:
  • First of all, the eigenvalues are squared angular frequency (w^2) for all solvers, right?
  • Second, what are the variables of the study? I can hardly make sense of Deflection 1, Deflection 2, ... Deflection 6. They appear both in the boundary condition and in the solution. I would like to deform the mesh with ParaView to have a look at the modes but there seems there is not any readily usable vector field.
  • Did anything change about this? If not, I guess I will have to try something else: at some point I will need to make the membrane to vibrate against air, to simulate acoustic radiation.
Also, here a picture of the meshing I am attempting to solve on:


According to my understanding, the Elastic Plates solver should not work unless the mesh is on the XY plane. Why I was able to have the solver delivering a solution?

EDIT (Embarrassing :oops: ) So, I checked my acoustics textbook... Although we refer to the physical object as "speaker membrane" I am actually trying to model it as a plate, since it is not under tension. I checked the formula for circular plates eigenfrequencies for rigidly clamped boundary. It gives a fundamental of 18.77 Hz. The Elastic Plates solver says 17.48 Hz...

Code: Select all

EigenSolve: 1:    1.205945E+04   0.000000E+00
EigenSolve: 2:    5.338884E+04   0.000000E+00
EigenSolve: 3:    5.339178E+04   0.000000E+00
EigenSolve: 4:    1.492115E+05   0.000000E+00
EigenSolve: 5:    1.492209E+05   0.000000E+00
EigenSolve: 6:    1.803310E+05   0.000000E+00
EigenSolve: 7:    3.269595E+05   0.000000E+00
EigenSolve: 8:    3.269882E+05   0.000000E+00
EigenSolve: 9:    4.315564E+05   0.000000E+00
EigenSolve: 10:    4.316478E+05   0.000000E+00
However I would expect the higher modes to grow as 72.82 Hz, 163.28 Hz... Still, probably the Elastic Plates is being much closer to actual physics than what I imagine. Still surprised to seeing it working tho.

Site Admin
Posts: 3705
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland

Re: Modelling thin membranes

Post by raback » 01 Aug 2016, 13:32


Without the eigensolver the components of Deflection are to my knowledge
1) Normal displacement
2) Rotation with respect to the 1st tangent direction
3) Rotation with respect to the 2nd tangent direction

For eigensolver there are six components since each of these have real and imaginary components. Some solvers name the components more wisely but I suspect that this hasn't much been used like this before.


Posts: 52
Joined: 12 May 2016, 13:15
Antispam: Yes

Re: Modelling thin membranes

Post by CrocoDuck » 02 Aug 2016, 18:59

Thank you raback, that makes it clearer. I guess I can mess with ParaView and get vectors out of those. I have made further experiments and seems that making a full solid for a thin membrane is not really wise. I made my model simpler (a simply supported aluminium rectangular plate) and I can get the same eigenfrequencies I expect by using the Elastic Plates solver (SmitcSolver). I am gonna mark this thread as Solved as my main question has been answered. However, I have few more questions:
  • I would like to apply a force to a point (or area) of an Elastic Plate and then couple it to air, to have it radiating sound. Is this possible? Or better, can the SmitcSolver be coupled with other solvers?
  • Do you confirm that the SmitcSolver works for not flat surfaces? It seems so to me but I am not sure.
My ultimate goal is to have a full model of a miniature dynamic loudspeaker, involving magnets, coils and membrane. However, I will move baby steps first simulating a simple rectangular DML loudspeaker radiating into free field, modelled as an elestic plate driven at a point and radiating into air. I have already solved this problem through a different method and I want to compare the Elmer solution with it.

Post Reply