Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
 ModelInfo: {
  File: ./pillbox.ncdf
  BoundaryCondition: {
    Electric: 1,2,3,4
    Exterior: 6
  }
   Material : {
     Attribute: 1
     Epsilon:   1.0
     Mu:        1.0
   }
   Material : {
      Attribute: 2
      Epsilon:   1.0
      Mu:        1.0
      EpsilonImag: -0.2        //lossy material
   }
 }

  FiniteElement: {
   Order: 1
   Curved Surfaces: off
  }

  PostProcess: {
    SymmetryFactor: 2
  }

  EigenSolver: {
    NumEigenvalues: 2
    FrequencyShift: 5e9
  }

...

Code Block
ModelInfo: {
File: c026ds-pbc.ncdf
  BoundaryCondition: {
    Magnetic: 1 2
    Periodic_M: 3   //master surface
    Periodic_S: 4   //slave surface, the mesh should be exactly same as those on the master surface
    Exterior: 6
    Theta: -150     //phase
  }
}

FiniteElement: {
  Order: 2
  CurvedSurfaces: on
  ScalarPotential: 1 //use A-V formulation
}

PostProcess:
{
  SymmetryFactor:  8
}
EigenSolver: {
    NumEigenvalues:     1
    FrequencyShift: 	10e9
}

...

Code Block
  ModelInfo: {
    File: cell1fourth.ncdf
    BoundaryCondition: {
      Magnetic: 1,2,3,4
      Exterior: 6
      Waveguide: 7    //for each number appeared here, it should have at least//Automatic onenumerical Portwaveguide containerport later.
solution will be generated per default
      //Absorbing: 7           //AbsorbingFirst-order andabsorbing Waveguide have the same effectsboundary condition. Omega3P internallyDefault willcutoff figureis out0
    }
  }

  FiniteElement: {
    Order:         //which BC to use.1
    }
  }

  FiniteElement: {
    Order:           1
    Curved Curved Surfaces: on
  }

  EigenSolver: {
    NumEigenvalues: 1
    FrequencyShift: 9.e9
  }

  Port: {
    ReferenceNumber: 7
     //this number should match surface groups in waveguide boundary condition.
NumberOfModes: 3              NumberOfModes: 1
  }

Analytic Ports (for polarization)

Omega3p normally uses a numerical solution for each port but if you need to specify the polarization of the waveguide you can give an analytic solution instead.

From the last example we could have used:

// this whole 'Port' container is only needed if you want to load more than 1 mode on a port
    //CutoffFrequency: 5.6e9      // this is only for Absorbing boundary conditions specified above.  Can be used to have the same cutoff as another waveguide mode for faster solution
  }

Analytic Ports (for polarization)

Omega3p normally uses a numerical solution for each port but if you need to specify the polarization of the waveguide you can give an analytic solution instead.

From the last example we could have used:

Code Block

  Port: {
Code Block

  Port: {
        ReferenceNumber: 7     //this number should match surface groups in waveguide boundary condition.
        Origin:     0.0, 0.0415, 0.0    //the origin of the 2D port in the 3D coordinate system
        XDirection: 1.0, 0.0,    0.0    //the x axis of the 2D port in the 3D coordinate system
        YDirection: 0.0, 0.0,   -1.0   //the y axis of the 2D port in the 3D coordinate system
        ESolver: {
                Type: Analytic              //analytic expression is used
                Mode: {
                        WaveguideType: Rectangular     //it is a rectangular waveguide
           ReferenceNumber: 7     //this number should match surface groups in ModeType:waveguide TEboundary 1condition.
 0       Origin:     0.0, 0.0415, 0.0      //loadthe theorigin TE10of mode
the 2D port in the 3D coordinate system
        XDirection: 1.0, 0.0,    0.0   A: 0.028499            //the x axis of the 2D port in the 3D coordinate system
        YDirection: 0.0, 0.0,    -1.0   //dimension of the waveguidey inaxis x
of the 2D port in the 3D coordinate system
            ESolver: {
    B: 0.0134053           Type:  Analytic              //dimensionanalytic ofexpression the waveguide in yis used
                Mode: }{
         }
   }

Load TEM mode in a coax waveguide

Code Block

   Port: {
        ReferenceNumberWaveguideType: Rectangular 2
    //it is a rectangular Origin:waveguide
     0.0, 0.0, 0.011
        ESolver: {
        ModeType: TE 1 0     Type: Analytic
              //load the Mode:TE10 {mode
                        WaveguideType: Coax
A: 0.028499                            ModeType: TEM//dimension of the waveguide in x
                        AB: 0.00110134053   //smaller radius
                       //dimension B: 0.0033  //larger radiusof the waveguide in y
                 }
         }
   }

Load

...

TEM mode in a

...

coax waveguide

Code Block
   Port: {
        ReferenceNumber: 2
        Origin:     0.0, 0.0, 0.1011
        XDirectionESolver: 1.0,{
  0.0,    0.0
        YDirection: 0.0,  1.0,    0.0Type: Analytic
        ESolver: {
       Mode:  {
       Type: Analytic
                ModeWaveguideType:  {Coax
                        Waveguide typeModeType: CircularTEM
                        Mode type: TE 1 1A: 0.0011  //smaller radius
                        AB: 0.030033  //larger radius
                }
        }
   }

Load

...

TE11 mode in a circular waveguide

Code Block
   Port: {
       Reference numberReferenceNumber: 92
  // FPC
      Origin:     0.0, 0.1989070, -0.44791525851
        XDirection:  -1.0,  0.0,    0.0
        YDirection: 0.0, 0 1.0, 1   0.0
        ESolver:  {
                Type: Analytic
                Mode:  {
                     WaveguideType: Rectangular
  Waveguide type: Circular
                 ModeType: TE 1 1
    Mode type: TE 1   1
           A: 0.1348935946
                     BA: 0.02497371499999997003
                }
        }
   }

Load two TE modes in the same rectangular waveguide

Code Block
  Port: {
      Reference number: 9  // FPC
      Origin: 0.0, 0.198907, -0.4479152585
      XDirection:  -1.0, 0.0, 0.0
      YDirection: 0.0, 0.0, 1.0
      ESolver:  {
             Type: Analytic
             Mode:  {
                     WaveguideType: Rectangular
                     ModeType: TE 21  01
                     A: 0.1348935946
                     B: 0.024973714999999970
            }
       }
   }

Make a non-planar surface absorbing boundary

Code Block
  Port: {
    ReferenceNumber: 5 Reference number:  9          //reference surface IDFPC
    Origin:    Origin: 0.0, 0.0198907, -0.0 4479152585
      //not used
    XDirection:  -1.0, 0.0,    0.0
    //not used
    YDirection: 0.0, 10.0,    01.0
    //not used
    ESolver: {
      Type: Analytic
      Mode:{
             Type: Analytic
          Mode number: 1
 Mode:  {
                    Waveguide typeWaveguideType: ABCRectangular
                       Mode typeModeType: ABC
TE 2     }0
    }
  }

LinearSolver options in EigenSolver container

...

            

...

 

...

    

...

A: 

...

0.

...

1348935946
    

...

            

...

 

...

    

...

B: 

...

0.

...

024973714999999970
      

...

    

...

 

...

 

...

}
 

...

 

...

 

...

 

...

 

...

 

...

 

...

}
   }
Code Block

LinearSolver options in EigenSolver container
  • The third first option is to use Krylov subspace method with different preconditioner. that user does not provide anything. The EigenSolver container in the input file looks like:
    Code Block
      EigenSolver: {
        NumEigenvalues: 1
        FrequencyShift: 10.e9
        Preconditioner: MP      //this use p-version of multilevel preconditioner.Tolerance: 1.e-8
      }
    
    The code will choose either CG (real matrices) or GMRES (complex matrices) and the p-version
    of multilevel precondtioner as the solver for shifted linear systems. In this case, Omega3P will use the default option for linear solver for solving shifted linear systems
  • The second The fourth option is to use out-of-core float version of the sparse direct solver (an experimental feature).
    Code Block
      EigenSolver: {
        NumEigenvalues: 1
        FrequencyShift: 10.e9
        MemoryPreconditioner: 1000 MUMPSFLOAT //ifuse the float version. memory usage of the matrix factor in any process is larger than 1000MBytes reduced into half.
      }
    
  • The third option is to use Krylov subspace method with different preconditioner.
    Code Block
    
      EigenSolver: {
        NumEigenvalues: 1,
        FrequencyShift: 10.e9
        Preconditioner: MP        //switchthis to use outp-version of-core multilevel solverpreconditioner.
      }
    
    The code will choose either CG (real matrices) or GMRES (complex matrices) and the p-version
    of multilevel precondtioner as the solver for shifted linear systems.

FAQ

How to calculate Wallloss Quality Factor?

...