MFEMRWTE10IntegratedBC

Overview

Adds the frequency space integrator corresponding to the value upon a cross-sectional boundary of the TE10 mode of an electromagnetic wave traveling through an infinite rectangular waveguide. The physical system in question is explained in more detail here.

If the parameter "input_port" is set to false, corresponding to the output boundary of the waveguide, the following boundary integrator is applied:

where or , is a complex scalar coefficient defined as follows:

where is the "frequency" parameter, is the port length vector, and and are the magnetic permeability and electric permittivity of the material in which the wave is propagating.

If the parameter "input_port" is set to true, corresponding to the input boundary of the waveguide, the following boundary integrator is applied:

where is defined by

with being the port width vector, and . Lastly, is a unit vector in the direction of .

Example Input File Syntax

[BCs<<<{"href": "../../../syntax/BCs/index.html"}>>>]
  [tangential_E]
    type = MFEMComplexVectorTangentialDirichletBC<<<{"description": "Applies a complex Dirichlet condition to the tangential components of a vector variable.", "href": "MFEMComplexVectorTangentialDirichletBC.html"}>>>
    variable<<<{"description": "Variable on which to apply the boundary condition"}>>> = E
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies. Defaults to all boundaries."}>>> = '2 3 4'
  []
  [WaveguidePortIn]
    type = MFEMRWTE10IntegratedBC<<<{"description": "Adds the Robin boundary conditions for an electromagnetic problem with transverse waves in a rectangular waveguide.", "href": "MFEMRWTE10IntegratedBC.html"}>>>
    variable<<<{"description": "Variable on which to apply the boundary condition"}>>> = E
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies. Defaults to all boundaries."}>>> = '5'
    input_port<<<{"description": "Whether the boundary attribute passed to this BC corresponds to the input port of the waveguide."}>>> = true
    port_length_vector<<<{"description": "Vector along the x-axis of the port, where its magnitude is the port length in meters."}>>> = "24.76e-2 0.0 0.0"
    port_width_vector<<<{"description": "Vector along the y-axis of the port, where its magnitude is the port width in meters."}>>> = "0.0 12.38e-2 0.0"
    frequency<<<{"description": "Mode frequency in Hz."}>>> = ${freq}
    epsilon<<<{"description": "Electric permittivity constant."}>>> = ${epsilon0}
    mu<<<{"description": "Magnetic permeability constant."}>>> = ${mu0}
  []
  [WaveguidePortOut]
    type = MFEMRWTE10IntegratedBC<<<{"description": "Adds the Robin boundary conditions for an electromagnetic problem with transverse waves in a rectangular waveguide.", "href": "MFEMRWTE10IntegratedBC.html"}>>>
    variable<<<{"description": "Variable on which to apply the boundary condition"}>>> = E
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies. Defaults to all boundaries."}>>> = '6'
    input_port<<<{"description": "Whether the boundary attribute passed to this BC corresponds to the input port of the waveguide."}>>> = false
    port_length_vector<<<{"description": "Vector along the x-axis of the port, where its magnitude is the port length in meters."}>>> = "24.76e-2 0.0 0.0"
    port_width_vector<<<{"description": "Vector along the y-axis of the port, where its magnitude is the port width in meters."}>>> = "0.0 12.38e-2 0.0"
    frequency<<<{"description": "Mode frequency in Hz."}>>> = ${freq}
    epsilon<<<{"description": "Electric permittivity constant."}>>> = ${epsilon0}
    mu<<<{"description": "Magnetic permeability constant."}>>> = ${mu0}
  []
[]
(test/tests/mfem/complex/complex_waveguide.i)

Input Parameters

  • boundary-1 The list of boundaries (ids or names) from the mesh where this object applies. Defaults to all boundaries.

    Default:-1

    C++ Type:std::vector<BoundaryName>

    Controllable:No

    Description:The list of boundaries (ids or names) from the mesh where this object applies. Defaults to all boundaries.

  • epsilon1Electric permittivity constant.

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Electric permittivity constant.

  • frequency1Mode frequency in Hz.

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Mode frequency in Hz.

  • input_portFalseWhether the boundary attribute passed to this BC corresponds to the input port of the waveguide.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether the boundary attribute passed to this BC corresponds to the input port of the waveguide.

  • mu1Magnetic permeability constant.

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Magnetic permeability constant.

  • port_length_vectorVector along the x-axis of the port, where its magnitude is the port length in meters.

    C++ Type:libMesh::VectorValue<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:Vector along the x-axis of the port, where its magnitude is the port length in meters.

  • port_width_vectorVector along the y-axis of the port, where its magnitude is the port width in meters.

    C++ Type:libMesh::VectorValue<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:Vector along the y-axis of the port, where its magnitude is the port width in meters.

  • variableVariable on which to apply the boundary condition

    C++ Type:VariableName

    Unit:(no unit assumed)

    Controllable:No

    Description:Variable on which to apply the boundary condition

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Set the enabled status of the MooseObject.

Advanced Parameters

Input Files