Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
indent20px
styledisc

A complete example for a lossless cavity

Code Block
Wiki Markup
{list-pages:direction=siblings}
h3. A complete example for a lossless cavity
{code}
  ModelInfo: {
    File: dds3.ncdf                             //mesh file. It is the file converted using acdtool
    BoundaryCondition: {                   //specify boundary conditions. The numbers here are sideset in cubit
      Magnetic: 1, 2                           //reference surfaces 1 and 2 are symmetric planes
      Electric: 3 4                               //set reference surfaces 3 and 4 to be electric boundary condition
      Exterior: 6                                 //surface group 6 (maybe many surfaces) is metal
   }
   SurfaceMaterial: {                          //for each metal (exterior) surface group, list the sigma values
      ReferenceNumber: 6
      Sigma: 5.8e7
    }
  }

  FiniteElement: {
     Order: 2                                     //set the finite element basis function order to be used.
     CurvedSurfaces: on
  }

  EigenSolver: {
      NumEigenvalues:     1                //want to compute 1 mode
      FrequencyShift: 		10.e9     //the eigenfrequency of the mode should be above 10GHz
  }

  CheckPoint: {
    Action: save
    Directory: eigens                         //eigenvectors are saved out into this directory
  }

  PostProcess: {
    Toggle: off                                   //postprocess switch
    ModeFile: dds                              //The prefix of the mode filename.
  }

  Log: thisrun.log                              //If you want more printout logged into the file
{code}

Once

...

Omega3P

...

run

...

is

...

successfully

...

completed,

...

eignvectors

...

are

...

stored

...

in

...

subdirectory

...

<tt>eigens</tt>.

...

User

...

can

...

convert

...

them

...

to

...

mode

...

files

...

to

...

be

...

visualized

...

using

...

paraview.

...

The

...

following

...

is

...

the

...

command

...

to

...

do

...

that:

{
Code Block
}
  acdtool postprocess eigentomode eigens
{code}
h3. A complete example about a cavity 

A complete example about a cavity with lossy materials

Code Block
with lossy materials
{code}
 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: {
    Toggle: off
    ModeFile: mode
    SymmetryFactor: 2
  }

  EigenSolver: {
    NumEigenvalues:     2
    FrequencyShift: 		5e9
  }

A complete example with waveguide loaded cavity

Code Block
{code}
h3. A complete example with waveguide loaded cavity

{code}
  ModelInfo: {
    File: cell1fourth.ncdf
    BoundaryCondition: {
      Magnetic: 1,2,3,4
      Exterior: 6
      Waveguide: 7    //for each number appeared here, it should have at least one Port container later.
    }
  }

  FiniteElement: {
    Order:           1
    Curved Surfaces: on
  }

  PostProcess: {
    Toggle: on
    ModeFile: test
  }

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

  CheckPoint: {
    Action: save
    Directory: eigens
  }


  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
                        ModeType: TE 1 0                    //load the TE10 mode
                        A: 0.028499                            //dimension of the waveguide in x
                        B: 0.0134053                           //dimension of the waveguide in y
                 }
         }
   }

Load TEM mode in a coax waveguide

Code Block
{code}
h3. Load TEM mode in a coax waveguide
{code}
   Port: {
        ReferenceNumber: 2
        Origin:     0.0, 0.0, 0.011
        ESolver: {
                Type: Analytic
                Mode: {
                        WaveguideType: Coax
                        ModeType: TEM
                        A: 0.0011  //smaller radius
                        B: 0.0033  //larger radius
                }
        }
   }

{code}

h3. Load TE11 mode in a circular waveguide
{code}

Load TE11 mode in a circular waveguide

Code Block
   Port: {
        ReferenceNumber: 2
        Origin:     0.0, 0.0, 0.1
        XDirection: 1.0,  0.0,    0.0
        YDirection: 0.0,  1.0,    0.0
        ESolver: {
                Type: Analytic
                Mode:  {
                        Waveguide type: Circular
                        Mode type: TE 1 1
                        A: 0.03
                }
        }
   }
{code}

h3.

Load two TE modes in the same rectangular waveguide

Code Block
 Load two TE modes in the same rectangular waveguide
{code}
  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 1 1
                     A: 0.1348935946  
                     B: 0.024973714999999970 
            }
     }
  }

  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 2  0
                     A: 0.1348935946  
                     B: 0.024973714999999970  
            }
       }
   }
{code}

h3. Make a 

Make a non-planar

...

surface

...

absorbing

...

boundary

{
Code Block
}
  Port: {
    ReferenceNumber: 5              //reference surface ID
    Origin:     0.0, 0.0, 0.0       //not used
    XDirection: 1.0, 0.0,    0.0    //not used
    YDirection: 0.0, 1.0,    0.0    //not used
    ESolver: {
      Type: Analytic
      Mode:{
                       Mode number: 1
                       Waveguide type: ABC
                       Mode type: ABC
      }
    }
  }
{code}

h3. LinearSolver options in EigenSolver container
* The first option is that user does not provide anything. The EigenSolver container in the input file looks like:
{code}

LinearSolver options in EigenSolver container

  • The first option is that user does not provide anything. The EigenSolver container in the input file looks like:
    Code Block
    
      EigenSolver: {
        NumEigenvalues:     1
        FrequencyShift:             10.e9
      }
    

...

  • In this case,

...

  • Omega3P

...

  • will

...

  • use

...

  • the

...

  • default

...

  • option

...

  • for

...

  • linear

...

  • solver

...

  • for

...

  • solving

...

  • shifted

...

  • linear

...

  • systems

...

  • The

...

  • second

...

  • option

...

  • is

...

  • to

...

  • use

...

  • Krylov

...

  • subspace

...

  • method

...

  • with

...

  • different

...

  • preconditioner.

...

  • Code Block

...

  • 
      EigenSolver: {
        NumEigenvalues:     1
        FrequencyShift:             10.e9
        Preconditioner: MP      //this use p-version of multilevel preconditioner. 
      }
    

...

  • 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.
  • The third option is to use out-of-core

...

  • sparse

...

  • direct

...

  • solver.

...

  • Code Block

...

  • 
      EigenSolver: {
        NumEigenvalues:     1
        FrequencyShift:             10.e9
        Memory: 1000  //if the memory usage of the matrix factor in any process is larger than 1000MBytes, 
                                //switch to use out-of-core solver. 
      }
    

...