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.

Assign pressure signal to nodes, other approach in COMSOL?

Please login with a confirmed email address before reporting spam

Hello together,

I am quite new in using COMSOL and I encountered a problem. I have done a simulation with another FEM program and I saved the nodal values for the acoustic pressure along a certain distance in a txt file. These I want to assign now to the nodes in my COMSOL model (it has the same mesh) in order to complete the calculation. Is that possible? So far I have not found anything considering nodal loads...

My approach was to place points where the nodes of the mesh from the other FEM program are and to assign a monopole source to these, which read the pressure values from the other simulation. In order to check this approach I implemented only one monopole source with a user defined pressure amplitude of 10 Pa and run the simulation in the frequency domain from 1 to 1000 Hz. If I take a look at the results, the pressure at the node is much higher than the assigned amplitude (up to 200 Pa instead of 10 Pa). I supposed that an oscillation with an initial amplitude of 10 Pa could be observed which is decaying with increasing distance to the source. But that's apparently not the case, the wanted value of 10 Pa is reached after one period of oscillation (especially a problem for large wave lengths). Does anybody know what's wrong here?

Thanks a lot for your help! Kind regards,

Peter Nermer

3 Replies Last Post 29 gen 2016, 03:25 GMT-5
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: 9 years ago 20 gen 2016, 12:39 GMT-5
Hi Peter

I'm afraid you need to do a little "brain wash" while moving to COMSOL.
The "old" generation FEM programs defined everything w.r.t. the mesh and the nodes. The mesh was the starting point.
With COMSOL you define all physics and BC with respect to the DOMAINS (as densities per volume dx*dy*dz ) and to the BOUNDARIES (as densities per "surface" ), the mesh in COMSOL is only a discretization of the space dimensions (where it truly belongs from a physical point of view).

So if your output from previous program was a set of force loads on "i" nodes of location (x_i,y_i,z_i) you need to convert your force load into a corresponding pressure [N/m^2] i.e. via an interpolation function and using your coordinates (x_i,y_i,z_i) to distribute the load over the boundary where it applies.

COMSOL's way to apply physics and BC are closer to the classical math-physics descriptions using continuous fields to map the 3D Domain and corresponding 2D Boundary space.

Also, in all generality, you should avoid load a model by applying edge or point loads on 3D Domains, remain if possible at the 3-1=2D level, on your Boundaries. Else you end up with numerical singularities and instabilities. This applies also to "older" FEM programs but one were less regarding before, when CPU power was sparse.

--
Good luck
Ivar
Hi Peter I'm afraid you need to do a little "brain wash" while moving to COMSOL. The "old" generation FEM programs defined everything w.r.t. the mesh and the nodes. The mesh was the starting point. With COMSOL you define all physics and BC with respect to the DOMAINS (as densities per volume dx*dy*dz ) and to the BOUNDARIES (as densities per "surface" ), the mesh in COMSOL is only a discretization of the space dimensions (where it truly belongs from a physical point of view). So if your output from previous program was a set of force loads on "i" nodes of location (x_i,y_i,z_i) you need to convert your force load into a corresponding pressure [N/m^2] i.e. via an interpolation function and using your coordinates (x_i,y_i,z_i) to distribute the load over the boundary where it applies. COMSOL's way to apply physics and BC are closer to the classical math-physics descriptions using continuous fields to map the 3D Domain and corresponding 2D Boundary space. Also, in all generality, you should avoid load a model by applying edge or point loads on 3D Domains, remain if possible at the 3-1=2D level, on your Boundaries. Else you end up with numerical singularities and instabilities. This applies also to "older" FEM programs but one were less regarding before, when CPU power was sparse. -- Good luck Ivar

Please login with a confirmed email address before reporting spam

Posted: 9 years ago 27 gen 2016, 14:49 GMT-5
Thanks for your reply, Ivar. I was a bit too focused on nodal inputs but there is also a pressure domain boundary.

Kind regards,

Peter
Thanks for your reply, Ivar. I was a bit too focused on nodal inputs but there is also a pressure domain boundary. Kind regards, Peter

Mads Herring Jensen COMSOL Employee

Please login with a confirmed email address before reporting spam

Posted: 9 years ago 29 gen 2016, 03:25 GMT-5
Dear Peter

I just want to follow up on Ivar's great answer.

Just to be very specific. You need to import your pressure load as an interpolation function (you can define interpolation data under the Global Definitions node or the Definitions nodes) then you simply add a pressure boundary condition and write interpolation(x,y,z), where interpolation is your interpolation function.

Best regards
Mads
Dear Peter I just want to follow up on Ivar's great answer. Just to be very specific. You need to import your pressure load as an interpolation function (you can define interpolation data under the Global Definitions node or the Definitions nodes) then you simply add a pressure boundary condition and write interpolation(x,y,z), where interpolation is your interpolation function. Best regards Mads

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.