You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

Table of Contents

A complete example for a lossless cavity

  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

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:

  acdtool postprocess eigentomode eigens

A complete example about a cavity with lossy materials

 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 periodic boundary conditions

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:
{
  Toggle: on                                                                   
  ModeFile: mode                                                               
  SymmetryFactor:  8.
}
EigenSolver: {
    NumEigenvalues:     1
    FrequencyShift: 	10e9
}

A complete example with waveguide loaded cavity

  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. Absorbing and Waveguide have the same effects. Omega3P internally will figure out which BC to use. 
    }
  }

  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

   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
                }
        }
   }

Load TE11 mode in a circular waveguide

   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
                }
        }
   }

Load two TE modes in the same rectangular waveguide

  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  
            }
       }
   }

Make a non-planar surface absorbing boundary

  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
      }
    }
  }

LinearSolver options in EigenSolver container

  • The first option is that user does not provide anything. The EigenSolver container in the input file looks like:
      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.
      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.
      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. 
      }
    
  • No labels