Mie scattering and plasmonics [Partially solved]

General discussion about Elmer
Post Reply
giulian
Posts: 11
Joined: 05 Dec 2023, 12:21
Antispam: Yes

Mie scattering and plasmonics [Partially solved]

Post by giulian »

Dear Elmer Community,

I would like to model the scattering of a metallic sphere in air. At this moment I tried to use the same procedure given for the waveguide tutorial but unfortunately I obtained an error that I cannot point out :

Code: Select all

ElmerSolver: Number of timesteps to be saved: 1
MAIN: 
MAIN: -------------------------------------
MAIN:  Steady state iteration:            1
MAIN: -------------------------------------
MAIN: 

ERROR:: GetEdgeBasis: Can't handle but linear elements, sorry.

STOP 1




For completeness I attach the sif file:

Code: Select all

Header
  CHECK KEYWORDS Warn
  Mesh DB "." "."
  Include Path ""
  Results Directory ""
End

Simulation
  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) = 1
  Coordinate Scaling = 1.0e-6
  Solver Input File = case.sif
  Post File = case.vtu
End

Constants
  Gravity(4) = 0 -1 0 9.82
  Stefan Boltzmann = 5.670374419e-08
  Permittivity of Vacuum = 8.85418781e-12
  Permeability of Vacuum = 1.25663706e-6
  Boltzmann Constant = 1.380649e-23
  Unit Charge = 1.6021766e-19
End

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

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

Solver 2
  Equation = Vector Helmholtz Post Process
  Calculate Magnetic Flux Density = True
  Calculate Poynting Vector = True
  Field Variable = E
  Calculate Magnetic Field Strength = True
  Procedure = "VectorHelmholtz" "VectorHelmholtzCalcFields"
  Calculate Energy Functional = True
  Calculate Electric Field = True
  Exec Solver = Always
  Stabilize = True
  Optimize Bandwidth = True
  Steady State Convergence Tolerance = 1.0e-5
  Nonlinear System Convergence Tolerance = 1.0e-7
  Nonlinear System Max Iterations = 20
  Nonlinear System Newton After Iterations = 3
  Nonlinear System Newton After Tolerance = 1.0e-3
  Nonlinear System Relaxation Factor = 1
  Linear System Solver = Iterative
  Linear System Iterative Method = BiCGStabl
  Linear System Max Iterations = 500
  Linear System Convergence Tolerance = 1.0e-10
  BiCGstabl polynomial degree = 2
  Linear System Preconditioning = ILU0
  Linear System ILUT Tolerance = 1.0e-3
  Linear System Abort Not Converged = False
  Linear System Residual Output = 10
  Linear System Precondition Recompute = 1
End

Solver 1
  Equation = Vector Helmholtz Equation
  Variable = E[E re:1 E:1]
  Linear System Preconditioning Damp Coefficient im = 1.0
  Procedure = "VectorHelmholtz" "VectorHelmholtzSolver"
  Exec Solver = Always
  Stabilize = True
  Optimize Bandwidth = True
  Steady State Convergence Tolerance = 1.0e-5
  Nonlinear System Convergence Tolerance = 1.0e-7
  Nonlinear System Max Iterations = 20
  Nonlinear System Newton After Iterations = 3
  Nonlinear System Newton After Tolerance = 1.0e-3
  Nonlinear System Relaxation Factor = 1
  Linear System Solver = Direct
  Linear System Direct Method = Umfpack
End

Solver 3
  Equation = Result Output
  Save Linear Elements = True
  Discontinuous Bodies = True
  Save Geometry Ids = True
  Output Format = Vtu
  Output File Name = case
  Procedure = "ResultOutputSolve" "ResultOutputSolver"
  Exec Solver = Always
End

Equation 1
  Name = "Equation 1"
$ a = 100
$ b = 100
$ c0 = 1/sqrt(8.854e-12*4*pi*10^-7) 
$ omega=2*pi*3e13
$ k0 = omega/c0 
$ kc = pi/a 
$ beta0 = sqrt(k0^2-kc^2)
  Angular Frequency = $ 2*pi*3*10e13
  Active Solvers(3) = 2 1 3
End

Material 1
  Name = "Material 1"
  Relative Permittivity = Real 1
End

Material 2
  Name = "Material 2"
  Relative Permittivity = Real -1000
  Relative Permittivity im = Real 10
End

Body Force 1
  Name = "BodyForce 1"
End

Boundary Condition 1
  Target Boundaries(4) = 1 2 6 7 
  Name = "PEC"
  E re {e} = 0
  E im {e} = 0
End

Boundary Condition 2
  Target Boundaries(1) = 3 
  Name = "import"
  Magnetic Boundary Load 2 = Variable Coordinate 1 
Real MATC "-2*beta0*k0/kc*sin(kc*(tx+a/2))"
  Electric Robin Coefficient im = $ beta0
End

Boundary Condition 3
  Target Boundaries(1) = 5 
  Name = "outport"
  Electric Robin Coefficient im = $ beta0
End


I would like to use Elmer mostly for two many purposes:
  • modeling surface plasmon polaritons excitement
  • modeling EM field at the interface of air/thin films
Thank you for any suggestions
My dearest regards
Giulian
Last edited by giulian on 12 Jan 2024, 00:48, edited 1 time in total.
giulian
Posts: 11
Joined: 05 Dec 2023, 12:21
Antispam: Yes

Re: Mie scattering and plasmonics

Post by giulian »

I solved the issue with the ERROR:: GetEdgeBasis: Can't handle but linear elements, sorry.. I used the quadratic approximation in the free text of my solver(VectorHelmholtz)
Post Reply