Helmholtz and Acoustics Coupling

Numerical methods and mathematical models of Elmer
Post Reply
akosik
Posts: 2
Joined: 10 May 2021, 12:43
Antispam: Yes

Helmholtz and Acoustics Coupling

Post by akosik »

Dear all,

I would like to couple the "farfield domain" with the Helmholtz Solver and the "nearfield domain" with the Acoustics Solver. Following tutorials and discussion in this forum, I end up with sif file below. However, I obtain the following error:

Code: Select all

ERROR:: HelmholtzSolver: Harmonic flow field should have 2*dim components
As you see in the commented lines, I tried to change the Variables names without any success.

Could you help me?

Best regards,
Adam

Code: Select all

Header
  CHECK KEYWORDS Warn
  Mesh DB "." "."
  Include Path ""
  Results Directory "results"
$ f = 5 10 20 55 100 110 200 220 300 400 440 500 600 700 800 880 900 1000 1100 1150 1200 1300 1400 1450 1500 1600 1700 1750 1760 1800 1900 2000 2050 2100 2200 2300 2400 2500
End

Simulation
  !Frequency = Real 1000
  Frequency = Variable time; Real MATC "f(tx - 1)"
  Max Output Level = 5
  ! Coordinate System = "Cartesian 2D"
  Coordinate System = Cylindric Symmetric
  ! Coddordinate Mapping(3) = 1 2 3
  ! Simulation Type = Steady state
  Simulation Type = Scanning
  Steady State Max Iterations = Integer 1
  ! Output Intervals = 1
  Timestepping Method = BDF
  BDF Order = 1
  Timestep intervals = 38
  Solver Input File = case.sif
  Post File = case.vtu
End

Constants
End

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

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

Material 1
  Name = "Air (room temperature)"
  Heat Conductivity = 0.0257
  Specific Heat = 718.0
  Equilibrium Density = 1.205
  Specific Heat Ratio = 1.4
  Equilibrium Temperature = 293
  Viscosity = 1.983e-5
  Heat expansion Coefficient = 3.43e-3
  Density = 1.205
  Heat Capacity = 1005.0
  Sound speed = 343.0
  Relative Permittivity = 1.00059
End

Equation 1
  Name = "Helmholtz"
  Active Solvers(1) = 1
End

Equation 2
  Name = "Harmonic NS"
  Convection Velocity 1 = 0
  Convection Velocity 2 = 0
  Active Solvers(1) = 2
End

Solver 1
  Equation = Helmholtz Equation
  Procedure = "HelmholtzSolve" "HelmholtzSolver"
  !Variable = -dofs 2 Pressure Wave
  Variable = -dofs 2 Pres
  !Variable DOFs = 4
  Exec Solver = Always
  Stabilize = True
  Bubbles = False
  Lumped Mass Matrix = False
  Optimize Bandwidth = True
  Steady State Convergence Tolerance = 1.0e-5
  Linear System Solver = direct
  Linear System Direct Method = MUMPS
  Linear System Iterative Method = "BiCGStab"
  Linear System Max Iterations = 1000
  Linear System Convergence Tolerance = 1.0e-08
  Linear System Abort Not Converged = True
  Linear System Preconditioning = "ILU2"
  Linear System Residual Output = 1
  Linear System Precondition Recompute = 1
  Nonlinear System Convergence Tolerance = 1.0e-05
  Nonlinear System Max Iterations = 5
  Nonlinear System Newton After Iterations = 3
  Nonlinear System Newton After Tolerance = 1.0e-02
  Nonlinear System Relaxation Factor = 1.0
End

Solver 2
  Equation = "Harmonic NS"
  !Variable = Flow Solution[Velocity:4 Pres:2 Temperature:2]
  !Variable = flow Solution[Velocity:4 Temperature:2 Pressure:2]
  Variable = "Flow"
  Variable DOFs = 8
  Procedure = "Acoustics" "AcousticsSolver"
  Element = "p:1 b:1"
  Bubbles in Global System = False
  Linear System Solver = Iterative
  Linear System Iterative Method = GCR
  Linear System GCR Restart = Integer 200
  Linear System Preconditioning = Ilu1
  Linear System Max Iterations = 1000
  Linear System Convergence Tolerance = 1e-10
  Linear System Scaling = Logical True
  Linear System Row Equilibration = Logical True 
  Linear System Abort Not Converged = False
  Linear System Residual Output = 10
End

!BCs Helmholtz
Boundary Condition 1
  Target Boundaries(1) = 9
  Name = "BoundaryCondition 1"
  !Pressure Wave 2 = Real 0.0
  !Pressure Wave 1 = Real 1.0
  Pres 2 = Real 0.0
  Pres 1 = Real 1.0
End


!BCs Acoustics


Boundary Condition 2
  Target Boundaries(1) = 1 
! Re Velocity 1 = Real 0
!  Im Velocity 1 = Real 0
!  Re Velocity 2 = Real 0
!  Im Velocity 2 = Real 0
!  Re Temperature = Real 0
!  Im Temperature = Real 0

  Re Specific Acoustic Impedance = Real 1.0
  Im Specific Acoustic Impedance = Real 0.0
End

!BCs Interface

Boundary Condition 3
  Target Boundaries(1) = 5
  Name = "BoundaryCondition 3"
  Re Temperature = Real 1.0
  Im Temperature = Real 0
  Acoustic Interface = Logical True
  Flow Interface = Logical True
  !Velocity Variable Name = String "Velocity"
End
raback
Site Admin
Posts: 4828
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Helmholtz and Acoustics Coupling

Post by raback »

Hi Adam,

This is a challenging combination that has probably not been used by many. The intended use was the modeling of acoustical cavities in mobile phones. This has not been active field for us for some time for obvious reasons.

I would recommend solving pure Helmholtz and pure Harmonic N-S problems first going step-by-step. Here is a consistency test for harmonic NS which may provide one working starting point:

https://github.com/ElmerCSC/elmerfem/tr ... HarmonicNS

-Peter
akosik
Posts: 2
Joined: 10 May 2021, 12:43
Antispam: Yes

Re: Helmholtz and Acoustics Coupling

Post by akosik »

Hi Peter,

Thank you for your prompt answer.
mika
Posts: 236
Joined: 15 Sep 2009, 07:44

Re: Helmholtz and Acoustics Coupling

Post by mika »

Hi,

To avoid the error (message) one could remove the command "Flow Interface = Logical True" and write a flux BC for the Helmholtz model in terms of the velocity. On the other hand giving the error in this case appears to be unnecessary. I think the Helmholtz code would create a right BC provided the velocity DOFs come before other DOFs (the time-harmonic NS solver works in this way), so I think the lines

Code: Select all

   IF( FlowDofs /= 2*dim ) THEN
      CALL Fatal('HelmholtzSolver','Harmonic flow field should have 2*dim components')
    END IF
could also be commented out from the Helmholtz code.

-- Mika
Post Reply