Note: This discussion is about an older version of the COMSOL Multiphysics® software. The information provided may be out of date.

Discussion Closed This discussion was created more than 6 months ago and has been closed. To start a new discussion with a link back to this one, click here.

Time Dependent Analysis of two Coupled Membranes

Please login with a confirmed email address before reporting spam

Hi everyone!

I am very new to comsol, so I apologize in advance if my problem is trivial.
I have to perform an acoustical simulation with comsol 4.2a.
My system is made of two elastic circular membranes coupled by an air-filled cavity. I want to apply a uniform (but time dependent) pressure on the two membranes, namely po*cos(w*t) on one membrane and p0*cos(w*(t+dt)) on the other.
As a final result, I want to get the velocity of vibration of the two membranes in the stationary state. However, I cannot understand whether I implemented correctly the time dependent conditions and I actually do not know how to build the study in order to get the velocity of vibration in the stationary state.

Concerning the pressure boundary conditions, I defined two analytical functions in the global definitions:
cos1=cos(w*t)
cos2=cos(w*(t+dt))
with argument t[s]
Then I defined two variables
p1=p0*cos1(t)
p2=p0*cos2(t)
I defined w, dt and p0 as parameters.

I am using an Acoustic-Shell Interaction, Frequency Domain Physics, and I selected a Face Load to apply for example p1 on one of the membranes and p2 on the second one.
Is that the correct way to proceed?
Moreover, how should I proceed in order to perform the time dependent study?

Thank you very much in advance!

7 Replies Last Post 23 août 2012, 16:19 UTC−4
Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 27 juin 2012, 14:21 UTC−4
Hi

using a time stepping solver is good to analyse transient phenomena, when it comes to stady state analysis, it is much more efficient to use a frequency domain solver and a harmonic development of the equations.

The reason is mostly that you will need quite some time to settle all the turn on transients and this will ake you most of your solver time, while once the steady state condition reached, the solver still needs to loop through the full periode for each oscillation

In your cas, you have two excitations, but they have a phase difference from your dt (that is how I interprete your equations). So you select a frequency domain solver, and set the two amplitudes p1 and p2 (or twice p0 if the pressure is the same) then you add a physe subnode to one of the two memebrane load cases and add adephasing term "theta" in radians or degrees (depending on your overall esttings, check carefully the units ;)

and you define your prequency in the frequency domain solver node (you can also sweep the frequency over a range)
You might add a parametric solver node with different physe values to see how the system reacts when the phase changes if that is of interest

--
Good luck
Ivar
Hi using a time stepping solver is good to analyse transient phenomena, when it comes to stady state analysis, it is much more efficient to use a frequency domain solver and a harmonic development of the equations. The reason is mostly that you will need quite some time to settle all the turn on transients and this will ake you most of your solver time, while once the steady state condition reached, the solver still needs to loop through the full periode for each oscillation In your cas, you have two excitations, but they have a phase difference from your dt (that is how I interprete your equations). So you select a frequency domain solver, and set the two amplitudes p1 and p2 (or twice p0 if the pressure is the same) then you add a physe subnode to one of the two memebrane load cases and add adephasing term "theta" in radians or degrees (depending on your overall esttings, check carefully the units ;) and you define your prequency in the frequency domain solver node (you can also sweep the frequency over a range) You might add a parametric solver node with different physe values to see how the system reacts when the phase changes if that is of interest -- Good luck Ivar

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 27 juin 2012, 17:03 UTC−4
Hi Ivar,

Thank you very much for the suggestion! It really helped me understanding quite a few things :)
I just have few more doubts...

If I just implement the Face Loads with the amplitude of the pressure wave p0 on the two membranes it all works nicely, but as soon as I enable the Phase subnode, I get the following error when solving (even if I set the phase to zero):

"Error in multiphysics compilation.
Error in automatic sequence generation."

Do you have any idea about what could that be due to?
And still concerning the phase subnode: my phase is w*dt, so how can I set such a phase if I want to perform the study on a whole range of frequencies? And how can I set the phase in degrees instead of radians?

Moreover, in my model dt represents the delay due to the fact that the wave will impact the two membranes at different times: it depends on the distance L between the two membranes and on the angle of incidence of the incoming wave, namely dt=L*sin(angle_incidence)/c, where c is the speed of sound.
Can I introduce the dependency upon the angle of incidence in the phase subnode and then set a range of values to be considered in a parametric solver node? That would be great!


Thank you so much for your help!
Hi Ivar, Thank you very much for the suggestion! It really helped me understanding quite a few things :) I just have few more doubts... If I just implement the Face Loads with the amplitude of the pressure wave p0 on the two membranes it all works nicely, but as soon as I enable the Phase subnode, I get the following error when solving (even if I set the phase to zero): "Error in multiphysics compilation. Error in automatic sequence generation." Do you have any idea about what could that be due to? And still concerning the phase subnode: my phase is w*dt, so how can I set such a phase if I want to perform the study on a whole range of frequencies? And how can I set the phase in degrees instead of radians? Moreover, in my model dt represents the delay due to the fact that the wave will impact the two membranes at different times: it depends on the distance L between the two membranes and on the angle of incidence of the incoming wave, namely dt=L*sin(angle_incidence)/c, where c is the speed of sound. Can I introduce the dependency upon the angle of incidence in the phase subnode and then set a range of values to be considered in a parametric solver node? That would be great! Thank you so much for your help!

Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 28 juin 2012, 02:31 UTC−4
Hi

check the dynamic help, the phase expression is something like the following for a frequency domain sweep

Amplitude: V(f) as the amplitude might vary with the frequency, or its invariant, up to you
phase contribution, internal formula when you define V(f) andPhase(f) : V(f)*cos(2*pi*freq+Phase(f))
again the phase contribution might change with frequency, or be invariant

now what I understand from your explanations is that your phase lag is due to the propagation time, but then I must ask more: this phase lag is the time of a given wave to propagate in the air, if you model the air COMSOL calculates this from the wave vector, its velocity etc (if you have a full model) if not you must define it but as an equation related to the wave vector, the velocity, the distance, and relate that to the active frequency to get a relative phase in angle

I believe the error comes from the variable you are using, something is wrong in the way to set up the phase lag like that.

Another important comment, avoid making your own variables with short names, as most letters are already used by COMSOL, and "w" is normally the 3rd coordinate displacement (or velocity in CFD) value.

COMSOL allow us to change the internal variables, so it does not necessarily flag this as an error, but often it's a mistake (name confusion)

--
Good luck
Ivar
Hi check the dynamic help, the phase expression is something like the following for a frequency domain sweep Amplitude: V(f) as the amplitude might vary with the frequency, or its invariant, up to you phase contribution, internal formula when you define V(f) andPhase(f) : V(f)*cos(2*pi*freq+Phase(f)) again the phase contribution might change with frequency, or be invariant now what I understand from your explanations is that your phase lag is due to the propagation time, but then I must ask more: this phase lag is the time of a given wave to propagate in the air, if you model the air COMSOL calculates this from the wave vector, its velocity etc (if you have a full model) if not you must define it but as an equation related to the wave vector, the velocity, the distance, and relate that to the active frequency to get a relative phase in angle I believe the error comes from the variable you are using, something is wrong in the way to set up the phase lag like that. Another important comment, avoid making your own variables with short names, as most letters are already used by COMSOL, and "w" is normally the 3rd coordinate displacement (or velocity in CFD) value. COMSOL allow us to change the internal variables, so it does not necessarily flag this as an error, but often it's a mistake (name confusion) -- Good luck Ivar

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 28 juin 2012, 15:37 UTC−4
Hi,

Since the frequency in the frequency domain study must be given in Hz (so it is not an angular frequency [rad/s]), while the phase (Face Load subnode) is set in radians... does Comsol transform the frequency in rad/s when solving the study?

Thanks a lot!
Hi, Since the frequency in the frequency domain study must be given in Hz (so it is not an angular frequency [rad/s]), while the phase (Face Load subnode) is set in radians... does Comsol transform the frequency in rad/s when solving the study? Thanks a lot!

Ivar KJELBERG COMSOL Multiphysics(r) fan, retired, former "Senior Expert" at CSEM SA (CH)

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 29 juin 2012, 01:00 UTC−4
Hi

there is always the fight of people working in omega and those in frequency (I'm the latter ;)
So indeed, Comsol looks after the 2*pi*freq multiplication for us, you can see that in the doc, when they give formulas (try the search)

--
Good luck
Ivar
Hi there is always the fight of people working in omega and those in frequency (I'm the latter ;) So indeed, Comsol looks after the 2*pi*freq multiplication for us, you can see that in the doc, when they give formulas (try the search) -- Good luck Ivar

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 9 juil. 2012, 05:36 UTC−4
Hi all,

first of all I would like to inform that I have been told by the support that the error message I got when enabling the phase was a BUG, and that it has been fixed with the first update of version 4.3.

Concerning my project, the two membranes I am trying to simulate represent two tympanic membranes.
In the real system there is a little bone attached to them, which acts like a completely stiff bar, i.e. it can move "up and down" with the membrane, but it cannot bend.
I would like now to implement this feature with comsol: a little "slice" of my membrane should move stiffly "up and down" with the rest of the membrane without bending. Does anyone have any idea about how can I implement this with comsol? If I just increase the Young's modulus, I also increase the stiffness with respect to the "up and down" movement...

Any help is greatly appreaciated!
Hi all, first of all I would like to inform that I have been told by the support that the error message I got when enabling the phase was a BUG, and that it has been fixed with the first update of version 4.3. Concerning my project, the two membranes I am trying to simulate represent two tympanic membranes. In the real system there is a little bone attached to them, which acts like a completely stiff bar, i.e. it can move "up and down" with the membrane, but it cannot bend. I would like now to implement this feature with comsol: a little "slice" of my membrane should move stiffly "up and down" with the rest of the membrane without bending. Does anyone have any idea about how can I implement this with comsol? If I just increase the Young's modulus, I also increase the stiffness with respect to the "up and down" movement... Any help is greatly appreaciated!

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 23 août 2012, 16:19 UTC−4
I am working on a similar model but without Acoustic module. I am trying to apply a time/frequency dependent load on three membranes and also including phase difference between membranes. I was wondering if you would mind sharing your model. I am interested in the implementation of the frequency domain solver and phase subnodes.
Thank you for your help.
I am working on a similar model but without Acoustic module. I am trying to apply a time/frequency dependent load on three membranes and also including phase difference between membranes. I was wondering if you would mind sharing your model. I am interested in the implementation of the frequency domain solver and phase subnodes. Thank you for your help.

Note that while COMSOL employees may participate in the discussion forum, COMSOL® software users who are on-subscription should submit their questions via the Support Center for a more comprehensive response from the Technical Support team.