Configuration File Reference
- Problem
- Output Formats
- Model
- Mesh Refinement
- Domains
- Materials · CurrentDipole · Domain Postprocessing
- Boundaries
- PEC Boundary · PMC Boundary · Impedance · Absorbing Boundary · Conductivity · Lumped Port · Wave Port · Floquet Port · Wave Port PEC · Surface Current · Ground Boundary · Zero Charge Boundary · Terminal · Periodic Boundary · Boundary Postprocessing
- Solver
- Eigenmode Solver · Driven Solver · Transient Solver · Electrostatic Solver · Magnetostatic Solver · Boundary Mode Solver · Linear Solver
Problem
Path: /Problem
object requiredTop-level configuration for the simulation type and output.
"Type"type:stringrequired-
Controls the simulation type.
"Eigenmode"- Perform an eigenmode analysis.
"Driven"- Perform a frequency-domain driven simulation.
"Transient"- Perform a time-domain excitation response simulation.
"Electrostatic"- Perform an electrostatic analysis to compute the capacitance matrix for a set of voltage terminals.
"Magnetostatic"- Perform a magnetostatic analysis to compute the inductance matrix for a set of current sources.
"BoundaryMode"- Perform a 2D waveguide boundary mode analysis to compute propagation constants on a cross-section.
"Verbose"type:integerdefault:1constraint:≥ 0-
Controls the level of log file printing.
"Output"type:stringdefault:"postpro"-
Directory path for saving postprocessing outputs. When omitted, results are written to a
postprodirectory relative to the working directory. "OutputFormats"type:object
Output Formats
Path: /Problem/OutputFormats
objectConfigures the field output formats.
"Paraview"type:booleandefault:true-
Set to
trueto output fields in ParaView format. "GridFunction"type:booleandefault:false-
Set to
trueto output fields in MFEM grid function format for visualization with GLVis.
Model
Path: /Model
object requiredMesh and model configuration.
"Mesh"type:stringrequired-
Input mesh file path. An absolute path is recommended. If the provided mesh is nonconformal, it is assumed to come from a previous Palace AMR solve, and all mesh preprocessing checks and modifications (for example CrackInternalBoundaryElements) are skipped.
"L0"type:numberdefault:1.0e-6constraint:> 0.0-
Unit, relative to meters, for mesh vertex coordinates. For example, a value of
1.0e-6means the mesh coordinates are in μm. "Lc"type:numberconstraint:> 0.0-
Characteristic length scale used for nondimensionalization, specified in mesh length units. This keyword should typically not be specified by the user. If omitted, Palace uses the largest mesh bounding-box dimension,
max_i(bbmax_i - bbmin_i). A value of1.0will disable nondimensionalization, so that all computations will take place in the same units as the mesh. "RemoveCurvature"type:booleandefault:falseadvanced-
Project high-order nodes to the mesh surface, removing all curvature before the simulation.
"MakeSimplex"type:booleandefault:falseadvanced-
Convert all mesh elements to simplices (tetrahedra/triangles).
"MakeHexahedral"type:booleandefault:falseadvanced-
Convert all mesh elements to hexahedra.
"ReorderElements"type:booleandefault:falseadvanced-
Reorder mesh elements to improve cache efficiency.
"CleanUnusedElements"type:booleandefault:trueadvanced-
Remove elements not connected to any domain material.
"CrackInternalBoundaryElements"type:booleandefault:trueadvanced-
Duplicate nodes along internal boundary elements to create a crack.
"RefineCrackElements"type:booleandefault:trueadvanced-
Refine elements adjacent to cracked internal boundaries.
"CrackDisplacementFactor"type:numberdefault:1.0e-12constraint:≥ 0.0advanced-
Displacement factor applied to cracked nodes as a fraction of the local element size.
"AddInterfaceBoundaryElements"type:booleandefault:trueadvanced-
Add boundary elements at interfaces between domains that lack them.
"ExportPrerefinedMesh"type:booleandefault:falseadvanced-
Export the mesh after preprocessing but before AMR refinement.
"ReorientTetMesh"type:booleandefault:falseadvanced-
Reorient tetrahedral elements to ensure positive Jacobians.
"Partitioning"type:stringadvanced-
Path to a mesh partitioning file. If omitted, partitioning is computed automatically.
"Refinement"type:object
Mesh Refinement
Path: /Model/Refinement
objectConfiguration for adaptive and uniform mesh refinement.
"Tol"type:numberdefault:0.01constraint:> 0.0-
Stop adaptive mesh refinement (AMR) when the norm of the estimated error falls below this value. The error is reported in
error-indicators.csv. "MaxIts"type:integerdefault:0constraint:≥ 0-
Maximum number of AMR iterations to perform.
"MaxSize"type:numberdefault:0constraint:≥ 0-
The maximum allowable number of degrees of freedom for AMR. If an adapted mesh exceeds this value no further adaptation will occur. A value less than 1 means that no maximum size constraint will be imposed.
"UpdateFraction"type:numberdefault:0.7constraint:> 0.0, < 1.0-
Dörfler marking fraction used to specify which elements to refine. This marking strategy will mark the smallest number of elements that make up "UpdateFraction" of the total error in the mesh. A larger value will refine more elements per iteration, at the cost of the final mesh being less efficient.
"Nonconformal"type:booleandefault:true-
Use nonconformal refinement in adaptation. Required for non-simplex meshes.
"MaxNCLevels"type:integerdefault:1constraint:≥ 0advanced-
Maximum number of nonconformal refinement levels.
0means no limit. "MaximumImbalance"type:numberdefault:1.1constraint:≥ 1.0advanced-
Maximum ratio of elements between the most- and least-loaded MPI ranks before repartitioning.
"SaveAdaptIterations"type:booleandefault:trueadvanced-
Save postprocessing results from each AMR iteration in a subdirectory
iterationX. "SaveAdaptMesh"type:booleandefault:falseadvanced-
Save the final adapted mesh to disk.
"UniformLevels"type:integerdefault:0constraint:≥ 0-
Levels of uniform parallel mesh refinement to be performed on the input mesh. If not performing AMR, these may be used as levels within a geometric multigrid scheme. If performing AMR the most refined mesh is used as the initial mesh and the coarser meshes cannot be used in a geometric multigrid scheme.
"SerialUniformLevels"type:integerdefault:0constraint:≥ 0advanced-
Levels of uniform serial mesh refinement applied before parallel distribution.
"Boxes"type:[object, ...]"Spheres"type:[object, ...]
Boxes
Path: /Model/Refinement/Boxes
[object, ...]Array of axis-aligned box refinement regions. All elements with a node inside the box are marked for refinement.
Path: /Model/Refinement/Boxes/0
"Levels"type:integerrequired constraint:≥ 0-
Levels of parallel mesh refinement inside this box region.
"BoundingBoxMin"type:[number × 3]required-
Minimum coordinates
[x, y, z]of the axis-aligned bounding box for this refinement region, in mesh length units. "BoundingBoxMax"type:[number × 3]required-
Maximum coordinates
[x, y, z]of the axis-aligned bounding box for this refinement region, in mesh length units.
Spheres
Path: /Model/Refinement/Spheres
[object, ...]Array of sphere refinement regions. All elements with a node inside the sphere are marked for refinement.
Path: /Model/Refinement/Spheres/0
"Levels"type:integerrequired constraint:≥ 0-
Levels of parallel mesh refinement inside this sphere region.
"Radius"type:numberrequired constraint:> 0.0-
Radius of the sphere, in mesh length units.
"Center"type:[number × 3]required-
Center coordinates
[x, y, z]of the sphere, in mesh length units.
Domains
Path: /Domains
object requiredMaterial and domain configuration.
"Materials"type:[object, ...]required"CurrentDipole"type:[object, ...]"Postprocessing"type:object
Materials
type:[object, ...] requiredArray of material property objects.
"Attributes"type:[integer, ...]required-
Integer array of mesh domain attributes this object applies to.
"Permeability"type:number or [number × 3]default:1.0-
Relative permeability for this material. Scalar or vector of 3 coefficients corresponding to each of
"MaterialAxes". "Permittivity"type:number or [number × 3]default:1.0-
Relative permittivity for this material. Scalar or vector of 3 coefficients corresponding to each of
"MaterialAxes". "LossTan"type:number or [number × 3]default:0.0-
Loss tangent for this material. Scalar or vector of 3 coefficients corresponding to each of
"MaterialAxes". "Conductivity"type:number or [number × 3]default:0.0-
Electrical conductivity for this material, S/m. Activates the Ohmic loss model in this domain. Scalar or vector of 3 coefficients corresponding to each of
"MaterialAxes". "LondonDepth"type:numberdefault:0.0-
London penetration depth for this material, specified in mesh length units. Activates the London equations-based model relating superconducting current and electromagnetic fields in this domain.
"MaterialAxes"type:[[number × 3] × 3]default:[[1.0,0.0,0.0],[0.0,1.0,0.0],[0.0,0.0,1.0]]-
Axes directions for specification of anisotropic material properties. Required to be unit length and orthogonal.
CurrentDipole
Path: /Domains/CurrentDipole
[object, ...]Array of current dipole source excitations.
Path: /Domains/CurrentDipole/0
"Index"type:integerrequired constraint:> 0-
Index of this current dipole source, used in postprocessing output files.
"Moment"type:numberrequired-
Current dipole moment magnitude, A·m.
"Center"type:[number × 3]required-
Coordinates of the dipole center position
[x, y, z], in mesh length units. "Direction"type:string or [number × 3]required-
Direction of the Dirac current source specifying the dipole. Axis-aligned directions can be specified using keywords:
"+X","-X","+Y","-Y","+Z","-Z". The direction can alternatively be specified as a normalized array of three values, for example[0.0, 1.0, 0.0].Allowed keyword values:
- Cartesian:
"X","Y","Z","+X","+Y","+Z","-X","-Y","-Z" - Lowercase forms are also accepted.
- Cartesian:
Domain Postprocessing
Path: /Domains/Postprocessing
objectConfiguration for domain postprocessing.
"Energy"type:[object, ...]"Probe"type:[object, ...]
Energy
Path: /Domains/Postprocessing/Energy
[object, ...]Array of objects for postprocessing domain energies. Postprocesses the electric and magnetic field energy inside a given domain. Results are written to domain-E.csv in the output directory.
Path: /Domains/Postprocessing/Energy/0
"Index"type:integerrequired constraint:> 0-
Index of this energy postprocessing domain, used in output files.
"Attributes"type:[integer, ...]required-
Integer array of mesh domain attributes this object applies to.
Probe
Path: /Domains/Postprocessing/Probe
[object, ...]Array of probe points for evaluating field values at specified locations in space. The electric field E and magnetic flux density B are probed and written to probe-E.csv and probe-B.csv in the output directory.
Path: /Domains/Postprocessing/Probe/0
"Index"type:integerrequired constraint:> 0-
Index of this probe, used in postprocessing output files.
"Center"type:[number × 3]required-
Coordinates of this probe
[x, y, z], in mesh length units.
Boundaries
Path: /Boundaries
object requiredBoundary condition configuration.
"PEC"type:object"PMC"type:object"Impedance"type:[object, ...]"Absorbing"type:object"Conductivity"type:[object, ...]"LumpedPort"type:[object, ...]"WavePort"type:[object, ...]"FloquetPort"type:[object, ...]"WavePortPEC"type:object"SurfaceCurrent"type:[object, ...]"Ground"type:object"ZeroCharge"type:object"Terminal"type:[object, ...]"Periodic"type:object"Postprocessing"type:object
PEC Boundary
Path: /Boundaries/PEC
objectPerfect electric conductor (PEC) boundary condition: enforces zero tangential electric field. This is a homogeneous Dirichlet condition for frequency/time domain and magnetostatic formulations.
"Attributes"type:[integer, ...]required-
Integer array of mesh boundary attributes this object applies to.
PMC Boundary
Path: /Boundaries/PMC
objectPerfect magnetic conductor (PMC) boundary condition: enforces zero tangential magnetic field. This is the natural (homogeneous Neumann) boundary condition; it also imposes symmetry of the electric field across the surface.
"Attributes"type:[integer, ...]required-
Integer array of mesh boundary attributes this object applies to.
Impedance
Path: /Boundaries/Impedance
[object, ...]Array of surface impedance boundary conditions. The surface impedance relates the tangential electric and magnetic fields using the parallel combination of the specified resistance, inductance, and capacitance per square.
Path: /Boundaries/Impedance/0
"Attributes"type:[integer, ...]required-
Integer array of mesh boundary attributes this object applies to.
"Rs"type:numberdefault:0.0-
Surface resistance for this impedance boundary, Ω/sq.
"Ls"type:numberdefault:0.0-
Surface inductance for this impedance boundary, H/sq.
"Cs"type:numberdefault:0.0-
Surface capacitance for this impedance boundary, F/sq.
Absorbing Boundary
Path: /Boundaries/Absorbing
objectFarfield absorbing (scattering) boundary conditions. These are artificial boundary conditions applied at farfield boundaries to minimize reflections.
"Attributes"type:[integer, ...]required-
Integer array of mesh boundary attributes this object applies to.
"Order"type:integerdefault:1constraint:≥ 1, ≤ 2advanced-
Specify a first- or second-order approximation for the absorbing boundary condition. Second-order is only available for frequency domain driven simulations.
Conductivity
Path: /Boundaries/Conductivity
[object, ...]Array of finite conductivity surface impedance boundaries. Models the effect of a boundary with non-infinite conductivity for conductors with thickness much larger than the skin depth. Only available for frequency domain driven and eigenmode simulations.
Path: /Boundaries/Conductivity/0
"Attributes"type:[integer, ...]required-
Integer array of mesh boundary attributes this object applies to.
"Conductivity"type:numberrequired-
Electrical conductivity for this boundary, S/m.
"Permeability"type:numberdefault:1.0-
Relative permeability for this boundary.
"Thickness"type:numberdefault:0.0-
Optional conductor thickness in mesh length units. Activates a finite-thickness boundary condition for metal.
"External"type:booleandefault:false-
Whether this boundary is on the exterior of the computational domain. Relevant for the thickness correction.
Lumped Port
Path: /Boundaries/LumpedPort
[object, ...]Array of lumped port boundary conditions. Lumped ports can be specified on boundaries internal to the computational domain.
Path: /Boundaries/LumpedPort/0
"Index"type:integerrequired constraint:> 0-
Index of this lumped port, used in postprocessing output files. Must be unique across all port and source types.
"Attributes"type:[integer, ...]-
Integer array of mesh boundary attributes for this lumped port boundary. If this port is to be a multielement lumped port with more than a single lumped element, use the "Elements" array described below.
"Direction"type:string or [number × 3]-
Excitation direction. Axis-aligned Cartesian directions can be specified using keywords:
"+X","-X","+Y","-Y","+Z","-Z". Coaxial directions use"+R","-R". Alternatively, specify a normalized 3-element array, e.g.[0.0, 1.0, 0.0]. The coordinate system is determined by"CoordinateSystem".Allowed keyword values:
- Cartesian:
"X","Y","Z","+X","+Y","+Z","-X","-Y","-Z" - Coaxial:
"R","+R","-R" - Lowercase forms are also accepted.
- Cartesian:
"CoordinateSystem"type:stringdefault:"Cartesian"-
Coordinate system used to express the
"Direction"vector. If a keyword argument is used for"Direction"this value is ignored."Cartesian"- Standard Cartesian coordinates.
"Cylindrical"- Cylindrical coordinates (enables
+R/-Rdirections).
"R"type:numberdefault:0.0-
Circuit resistance, Ω. Use with
"L"and"C"; do not mix with surface parameters"Rs","Ls","Cs". "L"type:numberdefault:0.0-
Circuit inductance, H. Use with
"R"and"C"; do not mix with surface parameters"Rs","Ls","Cs". "C"type:numberdefault:0.0-
Circuit capacitance, F. Use with
"R"and"L"; do not mix with surface parameters"Rs","Ls","Cs". "Rs"type:numberdefault:0.0-
Surface resistance, Ω/sq. Use with
"Ls"and"Cs"; do not mix with circuit parameters"R","L","C". "Ls"type:numberdefault:0.0-
Surface inductance, H/sq. Use with
"Rs"and"Cs"; do not mix with circuit parameters"R","L","C". "Cs"type:numberdefault:0.0-
Surface capacitance, F/sq. Use with
"Rs"and"Ls"; do not mix with circuit parameters"R","L","C". "Excitation"type:boolean or integerdefault:false-
Turns on or off port excitation for driven or transient simulations. Can be specified as a boolean or as a non-negative integer (excitation group index). See the boundary conditions guide for details.
"Active"type:booleandefault:true-
Turns on or off the damping boundary condition for this port for driven or transient simulations.
"IncludeInSynthesis"type:booleandefault:trueadvanced-
Controls whether this lumped port contributes a port-mode basis vector to the reduced-order model when adaptive driven circuit synthesis is enabled (AdaptiveCircuitSynthesis). The boundary condition itself (the
R/L/CorRs/Ls/Cstermination) is always enforced; only the inclusion of the port mode in the synthesized circuit matrices is affected. Set tofalseon passive terminations whose row/column in the synthesized $L^{-1}$, $C$, $R^{-1}$ matrices is not needed — for example, peripheral 50 Ohm launcher pads kept in the simulation for correct physics but not measured. Setting this tofalsereduces the size of the PROM basis by one vector per excluded port. Excited ports must always be included; the configuration parser will reject a port with"Excitation" > 0and"IncludeInSynthesis": false. "Elements"type:[object, ...]
Elements
Path: /Boundaries/LumpedPort/Elements
[object, ...]Sub-elements for a multielement lumped port. Use this instead of the top-level "Attributes"/"Direction"/"CoordinateSystem" when the port spans multiple disjoint boundary surfaces. Elements add in parallel.
Path: /Boundaries/LumpedPort/Elements/0
"Attributes"type:[integer, ...]required-
Integer array of mesh boundary attributes this object applies to.
"Direction"type:string or [number × 3]required-
Excitation direction. Axis-aligned Cartesian directions can be specified using keywords:
"+X","-X","+Y","-Y","+Z","-Z". Coaxial directions use"+R","-R". Alternatively, specify a normalized 3-element array, e.g.[0.0, 1.0, 0.0]. The coordinate system is determined by"CoordinateSystem".Allowed keyword values:
- Cartesian:
"X","Y","Z","+X","+Y","+Z","-X","-Y","-Z" - Coaxial:
"R","+R","-R" - Lowercase forms are also accepted.
- Cartesian:
"CoordinateSystem"type:stringdefault:"Cartesian"-
Coordinate system for this element's
"Direction"vector."Cartesian"- Standard Cartesian coordinates.
"Cylindrical"- Cylindrical coordinates (enables
+R/-Rdirections).
Wave Port
Path: /Boundaries/WavePort
[object, ...]Array of numeric wave port boundary conditions. Wave ports can only be specified on the true boundary of the computational domain (they must be "one-sided"). A 2D boundary mode eigenproblem is solved on each wave port to compute the port mode shape. Only available for frequency domain driven and eigenmode simulations.
Path: /Boundaries/WavePort/0
"Index"type:integerrequired constraint:> 0-
Index of this wave port, used in postprocessing output files. Must be unique across all port and source types.
"Attributes"type:[integer, ...]required-
Integer array of mesh boundary attributes this object applies to.
"Mode"type:integerdefault:1constraint:> 0-
Mode index (1-based) for the characteristic port mode of this wave port, ranked in order of decreasing wave number.
"Offset"type:numberdefault:0.0constraint:≥ 0.0-
Offset distance used for S-parameter de-embedding for this wave port, specified in mesh length units.
"SolverType"type:string-
Eigenvalue solver for computing the boundary mode. Accepts the same options as
/Solver/Eigenmode/Type. If omitted, Palace selects the available eigenvalue solver backend."Default"- Use Palace's default backend selection for the available build.
"SLEPc"- Use the SLEPc eigensolver backend.
"ARPACK"- Use the ARPACK eigensolver backend.
"Excitation"type:boolean or integerdefault:false-
Turns on or off port excitation for driven simulations. Can be specified as a boolean or as a non-negative integer (excitation group index). See the boundary conditions guide for details.
"Active"type:booleandefault:true-
Turns on or off the damping boundary condition for this port for driven simulations.
"MaxIts"type:integerdefault:45constraint:> 0advanced-
Maximum number of iterations for the GMRES solver used in the wave port boundary mode analysis.
"KSPTol"type:numberdefault:1.0e-8constraint:> 0.0advanced-
Tolerance for the linear solver used in the wave port boundary mode analysis.
"EigenTol"type:numberdefault:1.0e-6constraint:> 0.0advanced-
Tolerance for the eigenvalue solver used in the wave port boundary mode analysis.
"MaxSize"type:integerconstraint:> 0advanced-
Maximum subspace dimension for the eigenvalue solver. If omitted, Palace uses
max(2 × Mode, Mode + 15). "Verbose"type:integerdefault:0constraint:≥ 0.0advanced-
Verbosity level for the wave port linear and eigensolvers.
"VoltagePath"type:[[number, ...], ...]-
Open path of coordinate points across the port face, specified in mesh length units. Each entry is a floating point array of length equal to the spatial dimension. The path is directed from the signal (high-potential) terminal to the ground (low-potential) terminal, matching the lumped-port
"Direction"convention. When specified, this: 1. Pins the wave-port mode polarity so that $\int E_{\text{mode}} \cdot dl$ along the path is real-positive (required for consistent S-parameter signs when mixing wave and lumped ports in a driven simulation; without it, cross-type S-parameters may be $180^\circ$ out of phase). 2. Enables voltage and characteristic impedance $Z_{PV}$ postprocessing for the wave port. For example, in a coaxial wave port the first point is on the inner conductor (signal) and the last point is on the outer conductor (ground); for a CPW port, the first point is on the center trace and the last point in the gap. Uses GSLIB interpolation. "NSamples"type:integerdefault:100constraint:≥ 1-
Number of uniformly spaced sample points for the coordinate-based voltage line integral.
"PolarityAttributes"type:[integer × 2]-
Pair of parent-mesh boundary attributes
[signal, ground](signal/high-potential terminal first, ground/low-potential terminal second). Same role as the polarity component of VoltagePath: the mode is flipped so that the modal E-field points from the signal attribute toward the ground attribute. Ignored if"VoltagePath"is also specified. Lightweight alternative to"VoltagePath"when only polarity is needed (no $Z_{PV}$, no GSLIB). Both attributes must be present as distinct boundary attributes in the input mesh, with edges that lie on the port face.
Floquet Port
Path: /Boundaries/FloquetPort
[object, ...]Array of Floquet port boundary conditions for periodic driven simulations. Floquet ports model diffraction gratings and other periodic electromagnetic devices, compute diffraction-order S-parameters, and require Periodic boundary conditions with two transverse boundary pairs.
Floquet Port
Path: /Boundaries/FloquetPort/0
Floquet port boundary condition for periodic driven simulations.
"Index"type:integerrequired constraint:> 0-
Index of this Floquet port, used in postprocessing output files. Must be unique across all port and source types.
"Attributes"type:[integer, ...]required-
Integer array of mesh boundary attributes for this Floquet port. The port face must be planar and lie on the true boundary of the computational domain; the adjacent medium must be homogeneous and isotropic.
"Excitation"type:boolean or integerdefault:false-
Excitation flag or positive excitation index. When excited, injects a unit-power plane wave in the specular
(0, 0)diffraction order. "IncidentPolarization"type:stringdefault:"TE"-
Incident plane-wave polarization.
"TE"- Transverse electric (s-polarization).
"TM"- Transverse magnetic (p-polarization).
"RHC"- Right-hand circular polarization.
"LHC"- Left-hand circular polarization.
"MaxOrder"type:integerconstraint:≥ 0-
Maximum diffraction order index to include. If omitted, Palace starts from
3and caps each lattice direction at the mesh Nyquist limitmax(1, floor(p × π / (|b_i| × h_max))), wherepis the maximum element order,b_iis a reciprocal lattice vector, andh_maxis the maximum port-boundary element size.0includes only the specular(0, 0)order.
Wave Port PEC
Path: /Boundaries/WavePortPEC
objectAdditional PEC boundary conditions for the 2D eigensolve used in wave port mode analysis, along with those already specified under PEC and Conductivity. Only relevant when WavePort boundaries are present.
"Attributes"type:[integer, ...]required-
Integer array of mesh boundary attributes this object applies to.
Surface Current
Path: /Boundaries/SurfaceCurrent
[object, ...]Array of surface current source boundaries. Prescribes a unit source surface current excitation on the given boundary to excite a driven, transient, or magnetostatic simulation. For magnetostatic simulations, inductance matrix entries are extracted for each surface current boundary.
Path: /Boundaries/SurfaceCurrent/0
"Index"type:integerrequired constraint:> 0-
Index of this surface current source, used in postprocessing output files. Must be unique across all port and source types.
"Attributes"type:[integer, ...]-
Integer array of mesh boundary attributes for this surface current boundary. If this is to be a object with more than a single element, use the "Elements" array described below.
"Direction"type:string or [number × 3]-
Excitation direction. Axis-aligned Cartesian directions can be specified using keywords:
"+X","-X","+Y","-Y","+Z","-Z". Coaxial directions use"+R","-R". Alternatively, specify a normalized 3-element array, e.g.[0.0, 1.0, 0.0]. The coordinate system is determined by"CoordinateSystem".Allowed keyword values:
- Cartesian:
"X","Y","Z","+X","+Y","+Z","-X","-Y","-Z" - Coaxial:
"R","+R","-R" - Lowercase forms are also accepted.
- Cartesian:
"CoordinateSystem"type:stringdefault:"Cartesian"-
Coordinate system for the
"Direction"vector. Same options as/LumpedPort/CoordinateSystem."Cartesian"- Standard Cartesian coordinates.
"Cylindrical"- Cylindrical coordinates (enables
+R/-Rdirections).
"Elements"type:[object, ...]
Elements
Path: /Boundaries/SurfaceCurrent/Elements
[object, ...]Sub-elements for a multielement surface current source. Use this instead of the top-level "Attributes"/"Direction"/"CoordinateSystem" when the source spans multiple disjoint boundary surfaces. Elements add in parallel to give the same total current as a single-element source.
Path: /Boundaries/SurfaceCurrent/Elements/0
"Attributes"type:[integer, ...]required-
Integer array of mesh boundary attributes this object applies to.
"Direction"type:string or [number × 3]required-
Excitation direction. Axis-aligned Cartesian directions can be specified using keywords:
"+X","-X","+Y","-Y","+Z","-Z". Coaxial directions use"+R","-R". Alternatively, specify a normalized 3-element array, e.g.[0.0, 1.0, 0.0]. The coordinate system is determined by"CoordinateSystem".Allowed keyword values:
- Cartesian:
"X","Y","Z","+X","+Y","+Z","-X","-Y","-Z" - Coaxial:
"R","+R","-R" - Lowercase forms are also accepted.
- Cartesian:
"CoordinateSystem"type:stringdefault:"Cartesian"-
Coordinate system for this element's
"Direction"vector."Cartesian"- Standard Cartesian coordinates.
"Cylindrical"- Cylindrical coordinates (enables
+R/-Rdirections).
Ground Boundary
Path: /Boundaries/Ground
objectZero-voltage (ground) boundary condition for electrostatic simulations. Mutually exclusive with PEC.
"Attributes"type:[integer, ...]required-
Integer array of mesh boundary attributes this object applies to.
Zero Charge Boundary
Path: /Boundaries/ZeroCharge
objectZero surface charge (homogeneous Neumann) boundary condition for electrostatic simulations. Also imposes symmetry of the electric field across the surface. Mutually exclusive with PMC.
"Attributes"type:[integer, ...]required-
Integer array of mesh boundary attributes this object applies to.
Terminal
Path: /Boundaries/Terminal
[object, ...]Array of terminal boundaries for electrostatic simulations. Capacitance matrix entries are extracted for each terminal.
Path: /Boundaries/Terminal/0
"Index"type:integerrequired constraint:> 0-
Index of this terminal, used in postprocessing output files and to index the computed capacitance matrix.
"Attributes"type:[integer, ...]required-
Integer array of mesh boundary attributes this object applies to.
Periodic Boundary
Path: /Boundaries/Periodic
objectPeriodic boundary conditions for surfaces whose meshes are identical after translation and/or rotation. Floquet periodic boundary conditions with a phase shift are also supported.
"BoundaryPairs"type:[object, ...]required"FloquetWaveVector"type:[number × 3]default:[0.0,0.0,0.0]-
3-element Floquet wave vector
[kx, ky, kz]defining the phase delay between periodic boundaries, in radians per mesh length unit. "FloquetReferenceFrequency"type:numberdefault:0.0constraint:≥ 0-
Reference frequency, GHz, at which
"FloquetWaveVector"is defined. When nonzero, the Bloch wave vector scales linearly with frequency during a driven frequency sweep; when zero, it is held constant.
BoundaryPairs
Path: /Boundaries/Periodic/BoundaryPairs
[object, ...] requiredArray of donor–receiver boundary pairs defining the periodic mapping.
Path: /Boundaries/Periodic/BoundaryPairs/0
"DonorAttributes"type:[integer, ...]required-
Integer array of donor mesh boundary attributes for a periodic boundary pair.
"ReceiverAttributes"type:[integer, ...]required-
Integer array of receiver mesh boundary attributes for a periodic boundary pair.
"Translation"type:[number × 3]-
3-element translation vector
[dx, dy, dz]from donor to receiver boundary, in mesh length units. If neither"Translation"nor"AffineTransformation"are specified, the transformation is detected automatically. "AffineTransformation"type:[number × 16]-
16-element row-major 4×4 affine transformation matrix from donor to receiver boundary, in mesh length units. If neither
"Translation"nor"AffineTransformation"are specified, the transformation is detected automatically.
Boundary Postprocessing
Path: /Boundaries/Postprocessing
objectConfiguration for boundary postprocessing.
"SurfaceFlux"type:[object, ...]"Dielectric"type:[object, ...]"Impedance"type:[object, ...]"Voltage"type:[object, ...]"FarField"type:object
Surface Flux
Path: /Boundaries/Postprocessing/SurfaceFlux
[object, ...]Array of surface flux postprocessing boundaries. Results are written to surface-F.csv in the output directory.
Path: /Boundaries/Postprocessing/SurfaceFlux/0
"Index"type:integerrequired constraint:> 0-
Index of this surface flux postprocessing boundary, used in output files.
"Attributes"type:[integer, ...]required-
Integer array of mesh boundary attributes this object applies to.
"Type"type:stringrequired-
Type of surface flux to integrate over the boundary.
"Electric"- Integrate the electric flux density.
"Magnetic"- Integrate the magnetic flux density.
"Power"- Integrate the Poynting vector (energy flux).
"TwoSided"type:booleandefault:false-
For internal boundary surfaces: when
false, the flux on both sides is averaged; whentrue, it is summed with opposite normal direction. "Center"type:[number × 3]-
Point used to determine the outward normal orientation, in mesh length units. Only used when
"TwoSided"isfalse. If not specified, the point will be computed as the centroid of the axis-aligned bounding box for all elements making up the postprocessing boundary.
Dielectric
Path: /Boundaries/Postprocessing/Dielectric
[object, ...]Array of interface dielectric loss postprocessing boundaries. Computes energy participation ratios (EPR) and quality factors for dielectric interfaces. See also the reference documentation. Results are written to surface-Q.csv in the output directory.
Path: /Boundaries/Postprocessing/Dielectric/0
"Index"type:integerrequired constraint:> 0-
Index of this dielectric interface, used in output files.
"Attributes"type:[integer, ...]required-
Integer array of mesh boundary attributes this object applies to.
"Thickness"type:numberrequired-
Thickness of this dielectric interface, in mesh length units.
"Permittivity"type:numberrequired-
Relative permittivity of this dielectric interface layer. This should be the interface layer permittivity for the specific "Type" of interface specified.
"Type"type:stringdefault:"Default"-
Interface type used to determine the boundary conditions for computing the EPR. See also theory reference.
"Default"- Use the full electric field evaluated at the boundary.
"MA"- Use metal-air interface boundary conditions.
"MS"- Use metal-substrate interface boundary conditions.
"SA"- Use substrate-air interface boundary conditions.
"LossTan"type:numberdefault:0.0-
Loss tangent of this dielectric interface.
Mode Impedance
Path: /Boundaries/Postprocessing/Impedance
[object, ...]Array of objects for postprocessing mode impedance via voltage and current line integrals.
Path: /Boundaries/Postprocessing/Impedance/0
"Index"type:integerrequired-
Index of this impedance postprocessing boundary, used in postprocessing output files.
"VoltageAttributes"type:[integer, ...]-
Integer array of mesh boundary attributes for the voltage integration path across the gap between ground and trace. Either
"VoltageAttributes"or"VoltagePath"must be specified. "CurrentAttributes"type:[integer, ...]-
Integer array of mesh boundary attributes for the current integration loop around the trace. Either
"CurrentAttributes"or"CurrentPath"may be specified for the V/I impedance calculation. "VoltagePath"type:[[number, ...], ...]-
Array of coordinate points defining an open path for computing the voltage line integral $V = \int \mathbf{E} \cdot d\mathbf{l}$. Each element is a floating point array of length equal to the spatial dimension. At least two points are required. Specified in mesh length units. Uses uniformly weighted GSLIB interpolation, which is less accurate than the attribute-based method but does not require modifying the mesh to include integration boundaries.
"CurrentPath"type:[[number, ...], ...]-
Array of coordinate points defining a closed loop for computing the current line integral $I = \oint \mathbf{H}_t \cdot d\mathbf{l}$. Each element is a floating point array of length equal to the spatial dimension. The last point connects back to the first. Specified in mesh length units.
"NSamples"type:integerdefault:100constraint:≥ 1-
Number of uniformly spaced sample points for the coordinate-based line integrals (using GSLIB interpolation).
Mode Voltage
Path: /Boundaries/Postprocessing/Voltage
[object, ...]Array of objects for postprocessing mode voltage via line integrals.
Path: /Boundaries/Postprocessing/Voltage/0
"Index"type:integerrequired-
Index of this voltage postprocessing boundary, used in postprocessing output files.
"VoltageAttributes"type:[integer, ...]-
Integer array of mesh boundary attributes for the voltage integration path. Either
"VoltageAttributes"or"VoltagePath"must be specified. "VoltagePath"type:[[number, ...], ...]-
Array of coordinate points defining an open path for computing the voltage line integral $V = \int \mathbf{E} \cdot d\mathbf{l}$. Each element is a floating point array of length equal to the spatial dimension. At least two points are required. Specified in mesh length units.
"NSamples"type:integerdefault:100constraint:≥ 1-
Number of uniformly spaced sample points for the coordinate-based line integral (GSLIB interpolation).
Far Field
Path: /Boundaries/Postprocessing/FarField
objectFar-field electric field extraction. The boundary attributes must enclose the system and be on an external boundary.
"Attributes"type:[integer, ...]required-
Integer array of mesh boundary attributes this object applies to.
"NSample"type:integerdefault:0constraint:≥ 0-
Number of uniformly-spaced points used to discretize the far-field sphere.
"ThetaPhis"type:[[number × 2], ...]-
Additional specific (θ, φ) angle pairs in degrees at which to evaluate the far field. θ ∈ [0°, 180°] is the polar angle, φ ∈ [0°, 360°] is the azimuthal angle.
Solver
Path: /Solver
object requiredSolver configuration for all simulation types.
"Order"type:integerdefault:1constraint:≥ 1-
Finite element order (degree). Arbitrary high-order spaces are supported.
"PartialAssemblyOrder"type:integerdefault:1constraint:≥ 1-
Order at which to switch from full assembly of finite element operators to partial assembly. Setting to
1fully activates partial assembly on all levels; a large value (greater than Order) results in fully assembled sparse matrix operators. "QuadratureOrderJacobian"type:booleandefault:falseadvanced-
Use the Jacobian-based quadrature order instead of the default.
"QuadratureOrderExtra"type:integerdefault:0advanced-
Extra quadrature order added on top of the default.
"Device"type:stringdefault:"CPU"-
The runtime device configuration passed to MFEM to activate different computation backends. When Palace is built with OpenMP support (
PALACE_WITH_OPENMP=ON),ompis automatically added to the MFEM device list."CPU"- Run on CPU.
"GPU"- Run on GPU via CUDA (
MFEM_USE_CUDA=ON) or HIP (MFEM_USE_HIP=ON). "Debug"- MFEM debug device, useful for diagnosing GPU-related issues.
"Backend"type:string-
Specifies the libCEED backend to use. If omitted, Palace selects a suitable backend based on Device.
"Eigenmode"type:object"Driven"type:object"Transient"type:object"Electrostatic"type:object"Magnetostatic"type:object"BoundaryMode"type:object"Linear"type:object
Eigenmode Solver
type:objectConfiguration for the eigenvalue solver. Only relevant when /Problem/Type is "Eigenmode".
"Target"type:numberrequired constraint:> 0.0-
(Nonzero) frequency target above which to search for eigenvalues, GHz.
"Tol"type:numberdefault:1.0e-6constraint:≥ 0.0-
Relative convergence tolerance for the eigenvalue solver.
"MaxIts"type:integerconstraint:> 0-
Maximum number of iterations for the iterative eigenvalue solver. If omitted, Palace uses
1,000,000iterations. "MaxSize"type:integerconstraint:> 0-
Maximum subspace dimension for the eigenvalue solver. If omitted, Palace uses
max(2 × N, N + 15). "N"type:integerdefault:1constraint:> 0-
Number of eigenvalues to compute.
"Save"type:integerdefault:0-
Number of computed field modes to save to disk for visualization with ParaView. Files are saved in the
paraview/(and/orgridfunction/) directory under/Problem/Output. "Type"type:string-
Specifies the eigenvalue solver backend.
"Default"- Use Palace's default backend selection for the available build.
"SLEPc"- Use the SLEPc eigensolver backend.
"ARPACK"- Use the ARPACK eigensolver backend.
"PEPLinear"type:booleandefault:trueadvanced-
Linearize the polynomial eigenvalue problem before solving.
"Scaling"type:booleandefault:trueadvanced-
Enable scaling of the eigenvalue problem.
"StartVector"type:booleandefault:trueadvanced-
Use a random start vector for the eigensolver.
"StartVectorConstant"type:booleandefault:falseadvanced-
Use a constant start vector instead of a random one.
"MassOrthogonal"type:booleandefault:falseadvanced-
Orthogonalize eigenvectors with respect to the mass matrix.
"NonlinearType"type:stringdefault:"Hybrid"-
Specifies the nonlinear eigenvalue solver for problems with frequency-dependent boundary conditions.
"Hybrid"- Use the hybrid nonlinear eigensolver strategy.
"SLP"- Use the successive linear problems nonlinear eigensolver.
"RefineNonlinear"type:booleandefault:trueadvanced-
Refine nonlinear eigenvalue solutions after the initial solve.
"LinearTol"type:numberdefault:0.001constraint:≥ 0.0advanced-
Tolerance for the inner linear solve within the nonlinear eigensolver.
"TargetUpper"type:numberconstraint:> 0.0advanced-
Upper frequency bound for the eigenvalue search, GHz. Only used for nonlinear problems. If omitted, Palace uses
3 × Target. An inaccurate upper bound can negatively affect convergence of the nonlinear eigensolver. "PreconditionerLag"type:integerdefault:10constraint:≥ 0advanced-
Number of eigensolver iterations between preconditioner updates.
"PreconditionerLagTol"type:numberdefault:0.0001constraint:≥ 0.0advanced-
Residual tolerance below which preconditioner updates are skipped.
"MaxRestart"type:integerdefault:2constraint:≥ 0advanced-
Maximum number of restarts for the eigensolver.
Driven Solver
type:objectConfiguration for the frequency domain driven solver. Only relevant when /Problem/Type is "Driven".
"MinFreq"type:numberdeprecated-
Lower bound of the frequency sweep interval, GHz. Deprecated: use
Linear Samplesinterface instead. "MaxFreq"type:numberdeprecated-
Upper bound of the frequency sweep interval, GHz. Deprecated: use
Linear Samplesinterface instead. "FreqStep"type:numberdeprecated-
Frequency step size for the frequency sweep, GHz. Deprecated: use
Linear Samplesinterface instead. "SaveStep"type:integerdefault:0deprecated-
Controls how often, in number of frequency steps, to save computed fields to disk for visualization with ParaView. Files are saved in the
paraview/(and/orgridfunction/) directory under/Problem/Output. Deprecated: useLinear Samplesinterface instead. "Samples"type:[object, ...]"Save"type:[number, ...]-
Additional frequencies at which to save computed fields to disk for visualization with ParaView, in addition to those specified by
"SaveStep". Files are saved in theparaview/(and/orgridfunction/) directory under/Problem/Output. "Restart"type:integerdefault:1constraint:> 0-
1-based sample index from which to restart a partial frequency sweep (i.e.
"Restart": xstarts from the x-th sample of the combined sample set). Not valid for adaptive sweep. "AdaptiveTol"type:numberdefault:0.0constraint:≥ 0.0-
Relative error convergence tolerance for adaptive fast frequency sweep. A value of
0disables adaptive sweep and the full-order model is solved at each frequency step. A positive value ensures the reduced-order model is reliable relative to the full-order model in the frequency band of interest. "AdaptiveMaxSamples"type:numberdefault:20constraint:> 0-
Maximum number of frequency samples used to construct the reduced-order model for adaptive sweep, if the tolerance (
"AdaptiveTol") is not met first. In simulations with multiple excitations, this is the maximum per excitation. "AdaptiveConvergenceMemory"type:integerdefault:2constraint:> 0-
Number of consecutive samples satisfying the error tolerance required to declare convergence of the adaptive sampling algorithm.
"AdaptiveGSOrthogonalization"type:stringdefault:"CGS2"advanced-
Gram-Schmidt variant for orthogonalizing the adaptive reduced-order model basis. Same options as
/Linear/GSOrthogonalization."MGS"- Modified Gram-Schmidt.
"CGS"- Classical Gram-Schmidt.
"CGS2"- Two-step classical Gram-Schmidt with reorthogonalization.
"AdaptiveCircuitSynthesis"type:booleandefault:false-
Use the adaptive reduced-order model to print synthesized circuit-like matrices (L⁻¹, R⁻¹, C). Requires adaptive sweep to be enabled, all
LumpedPortfields to be orthogonal, and only LRC-type frequency dependence (noWavePort,Conductivity, or second-order farfield BCs). "AdaptiveCircuitSynthesisDomainOrthogonalization"type:stringdefault:"Energy"advanced-
Weight matrix type for domain orthogonalization when building synthesized circuit matrices.
"Energy"- Use the energy-based domain mass matrix.
"FEBasisIdentity"- Use the identity matrix in the finite element basis.
"SpaceOverlap"- Use the physical-space field overlap.
Samples
type:[object, ...]Array of frequency sample specifications. Combined with "MinFreq"/"MaxFreq"/"FreqStep" to form a sorted, unique set of samples.
Point Samples
Path: /Solver/Driven/Samples/0
Explicit list of frequency sample points.
"Freq"type:[number, ...]required-
Explicit frequencies to sample, GHz.
"Type"type:anydefault:"Point""SaveStep"type:integerdefault:0-
Save fields every N steps within this sample.
0disables saving. "AddToPROM"type:booleandefault:false-
Force inclusion of these points in the PROM for adaptive sweep (primarily a debugging tool).
Linear Samples
Path: /Solver/Driven/Samples/1
Linearly-spaced frequency samples.
"MinFreq"type:numberrequired constraint:≥ 0.0-
Lower bound, GHz.
"MaxFreq"type:numberrequired constraint:≥ 0.0-
Upper bound, GHz.
"Type"type:anydefault:"Linear""FreqStep"type:numberconstraint:≥ 0.0-
Step size, GHz. Mutually exclusive with
"NSample". "NSample"type:integerconstraint:≥ 0-
Number of samples. Mutually exclusive with
"FreqStep". "SaveStep"type:integerdefault:0-
Save fields every N steps.
0disables saving. "AddToPROM"type:booleandefault:false-
Force inclusion in the PROM for adaptive sweep.
Log Samples
Path: /Solver/Driven/Samples/2
Logarithmically-spaced frequency samples.
"Type"type:anyrequired"MinFreq"type:numberrequired constraint:> 0.0-
Lower bound, GHz.
"MaxFreq"type:numberrequired constraint:> 0.0-
Upper bound, GHz.
"NSample"type:integerrequired constraint:≥ 1-
Number of samples.
"SaveStep"type:integerdefault:0-
Save fields every N steps.
0disables saving. "AddToPROM"type:booleandefault:false-
Force inclusion in the PROM for adaptive sweep.
Transient Solver
type:objectConfiguration for the time domain driven solver. Only relevant when /Problem/Type is "Transient". Simulations always start from rest at t = 0.
"Excitation"type:stringrequired-
Controls the time dependence of the source excitation.
"Sinusoidal"- Sinusoidal source excitation.
"Gaussian"- Gaussian pulse excitation.
"DifferentiatedGaussian"- Differentiated Gaussian pulse excitation.
"ModulatedGaussian"- Gaussian-modulated sinusoidal excitation.
"Ramp"- Ramp-step excitation.
"SmoothStep"- Smooth step excitation.
"MaxTime"type:numberrequired constraint:> 0.0-
End of simulation time interval, ns.
"TimeStep"type:numberrequired constraint:> 0.0-
Uniform time step size, ns.
"Type"type:stringdefault:"GeneralizedAlpha"-
Time integration scheme for the second-order ODE system.
"Default"- Use Palace's default time integration scheme.
"GeneralizedAlpha"- Use the generalized-α time integration scheme.
"RungeKutta"- Use the Runge-Kutta time integrator.
"CVODE"- Use the CVODE time integrator.
"ARKODE"- Use the ARKODE time integrator.
"ExcitationFreq"type:numberdefault:0.0-
Center frequency for harmonic source excitations, GHz. Only relevant when
"Excitation"is"Sinusoidal","Gaussian","DifferentiatedGaussian", or"ModulatedGaussian". "ExcitationWidth"type:numberdefault:0.0-
Pulse width for Gaussian-type source excitations, ns. Only relevant when
"Excitation"is"Gaussian","DifferentiatedGaussian","ModulatedGaussian", or"SmoothStep". "SaveStep"type:integerdefault:0-
Controls how often, in number of time steps, to save computed fields to disk for visualization with ParaView. Files are saved in the
paraview/(and/orgridfunction/) directory under/Problem/Output. "Order"type:integerdefault:2constraint:≥ 2, ≤ 5-
Order of adaptive Runge-Kutta integrators or maximum multistep method order, must be within
[2, 5]. Only relevant when"Type"is"ARKODE"or"CVODE". "RelTol"type:numberdefault:0.0001constraint:> 0.0-
Relative tolerance for adaptive time-stepping. Only relevant when
"Type"is"ARKODE"or"CVODE". "AbsTol"type:numberdefault:1.0e-9constraint:> 0.0-
Absolute tolerance for adaptive time-stepping. Only relevant when
"Type"is"ARKODE"or"CVODE".
Electrostatic Solver
Path: /Solver/Electrostatic
objectConfiguration for the electrostatic solver. Only relevant when /Problem/Type is "Electrostatic".
"Save"type:integerdefault:0constraint:≥ 0-
Number of computed electric field solutions to save to disk for visualization with ParaView, ordered by the entries in the computed capacitance matrix. Files are saved in the
paraview/(and/orgridfunction/) directory under/Problem/Output.
Magnetostatic Solver
Path: /Solver/Magnetostatic
objectConfiguration for the magnetostatic solver. Only relevant when /Problem/Type is "Magnetostatic".
"Save"type:integerdefault:0constraint:≥ 0-
Number of computed magnetic field solutions to save to disk for visualization with ParaView, ordered by the entries in the computed inductance matrix. Files are saved in the
paraview/(and/orgridfunction/) directory under/Problem/Output.
Boundary Mode Solver
Path: /Solver/BoundaryMode
objectConfigures the 2D boundary mode analysis solver, which computes propagation constants of guided modes on a waveguide cross-section. Used when Type is "BoundaryMode".
"Freq"type:numberrequired constraint:> 0.0-
Operating frequency for the mode analysis, GHz.
"N"type:integerdefault:1constraint:≥ 1-
Number of modes to compute.
"Save"type:integerdefault:0constraint:≥ 0-
Number of computed field modes to save to disk for visualization with ParaView. Files are saved in the
paraview/(and/orgridfunction/) directory under the directory specified by Output. "Target"type:numberconstraint:> 0.0-
Target effective index $n_\text{eff} = k_n / k_0$ for the eigenvalue solver shift-and-invert spectral transformation, where $k_n$ is the propagation constant of the guided mode and $k_0 = \omega / c_0$ is the free-space wavenumber. When specified, the solver searches for modes with effective index near this value. If omitted, Palace computes the shift from material properties as
k_n = (ω / c_min) × sqrt(1.1), wherec_minis the minimum material light speed in the solve domain. "Tol"type:numberdefault:1.0e-6constraint:> 0.0-
Relative convergence tolerance for the eigenvalue solver.
"MaxSize"type:integerconstraint:> 0advanced-
Maximum subspace dimension for the eigenvalue solver. If omitted, Palace uses
max(2 × N, N + 15). "Type"type:string-
Specifies the eigenvalue solver to be used for the mode analysis. See Eigenmode Type.
"Default"- Use Palace's default backend selection for the available build.
"SLEPc"- Use the SLEPc eigensolver backend.
"ARPACK"- Use the ARPACK eigensolver backend.
"Attributes"type:[integer, ...]-
Integer array of 3D mesh boundary attributes from which to extract a 2D cross-section submesh for the mode analysis. When specified, the input mesh must be 3D and a standalone 2D submesh is extracted from these boundary faces. When not specified, the input mesh is used directly and must be 2D.
Linear Solver
type:objectConfiguration for the linear solver used by all simulation types.
"Type"type:string-
Specifies the solver used for preconditioning the linear system. If omitted, Palace selects the solver based on the problem type and available sparse direct solvers.
"Default"- Use Palace's default linear preconditioner selection.
"AMS"- Use the Hypre AMS preconditioner.
"BoomerAMG"- Use the Hypre BoomerAMG preconditioner.
"MUMPS"- Use the MUMPS sparse direct solver.
"SuperLU"- Use the SuperLU_DIST sparse direct solver.
"STRUMPACK"- Use the STRUMPACK sparse direct solver.
"STRUMPACK-MP"- Use the STRUMPACK-MP sparse direct solver variant.
"Jacobi"- Use the Jacobi preconditioner.
"KSPType"type:string-
Specifies the iterative Krylov subspace solver. If omitted, Palace uses CG for electrostatic, magnetostatic, and transient simulations, and GMRES otherwise.
"Default"- Use Palace's default Krylov solver for the active problem type.
"CG"- Use conjugate gradients.
"MINRES"- Use MINRES.
"GMRES"- Use GMRES.
"FGMRES"- Use flexible GMRES.
"BiCGSTAB"- Use BiCGSTAB.
"Tol"type:numberdefault:1.0e-6constraint:≥ 0.0-
Relative residual convergence tolerance for the iterative linear solver.
"MaxIts"type:integerdefault:100constraint:> 0-
Maximum number of iterations for the iterative linear solver.
"MaxSize"type:integerconstraint:> 0-
Maximum Krylov space size for GMRES/FGMRES. If omitted, Palace uses
MaxIts. "InitialGuess"type:booleanadvanced-
Use the previous solution as an initial guess for the iterative solver. If omitted, Palace enables this for driven simulations without adaptive frequency sweep, transient simulations, electrostatics, and magnetostatics, and disables it otherwise.
"MGMaxLevels"type:integerconstraint:≥ 1-
When greater than 1, enables geometric multigrid preconditioning using p- and h-multigrid coarsening. The solver specified by
"Type"is used on the coarsest level; fine levels use Chebyshev smoothing. If omitted, Palace uses1for boundary mode analysis (multigrid disabled) and100otherwise. "MGCoarsenType"type:stringdefault:"Logarithmic"-
Coarsening strategy for constructing p-multigrid levels.
"Linear"- Use linearly decreasing polynomial order between p-multigrid levels.
"Logarithmic"- Use logarithmic polynomial-order coarsening between p-multigrid levels.
"MGUseMesh"type:booleandefault:trueadvanced-
Use the mesh hierarchy for h-multigrid coarsening.
"MGAuxiliarySmoother"type:booleanadvanced-
Use an auxiliary space smoother on multigrid levels. If omitted, Palace disables this by default for electrostatic and magnetostatic simulations and enables it otherwise.
"MGCycleIts"type:integerconstraint:> 0-
Number of V-cycle iterations per preconditioner application for multigrid preconditioners (when geometric multigrid is enabled or
"Type"is"AMS"or"BoomerAMG"). If omitted, Palace uses2for AMS frequency-domain problems ("Type"is"AMS"for eigenmode or driven simulations) and1otherwise. "MGSmoothIts"type:integerdefault:1constraint:> 0-
Number of pre- and post-smooth iterations for multigrid preconditioners, when the geometric multigrid preconditioner is enabled.
"MGSmoothOrder"type:integerconstraint:> 0-
Polynomial smoothing order for geometric multigrid. If omitted, Palace uses
max(2 × solution order, 4). "MGSmoothEigScaleMax"type:numberdefault:1.0constraint:> 0advanced-
Maximum eigenvalue scale for the Chebyshev smoother.
"MGSmoothEigScaleMin"type:numberdefault:0.0constraint:≥ 0advanced-
Minimum eigenvalue scale for the Chebyshev smoother.
"MGSmoothChebyshev4th"type:booleandefault:trueadvanced-
Use 4th-kind Chebyshev polynomial smoother.
"PCMatReal"type:booleandefault:false-
When
true, builds the preconditioner for frequency domain problems using a real-valued approximation of the system matrix. Always used on the coarsest multigrid level regardless of this setting. "PCMatShifted"type:boolean-
When
true, builds the preconditioner using a positive-definite approximation by flipping the sign of the mass matrix contribution. Can improve performance at high frequencies relative to the lowest nonzero eigenfrequencies of the model. If omitted, Palace enables this for driven simulations using AMS and for boundary mode simulations with multigrid enabled, and disables it otherwise. "ComplexCoarseSolve"type:booleandefault:false-
When
true, uses the true complex-valued system matrix for the coarse-level solver. Whenfalse, uses the real-valued approximation. "DropSmallEntries"type:booleandefault:false-
When
true, drops entries smaller than double-precision machine epsilon from the system matrix used in the sparse direct solver. "ReorderingReuse"type:booleandefault:trueadvanced-
Reuse the matrix reordering from the previous solve.
"PCSide"type:string-
Preconditioning side. If omitted, Palace uses the chosen iterative solver's preconditioning side. Not all options are available for all iterative solver choices.
"Default"- Use Palace's default preconditioning side for the chosen Krylov solver.
"Right"- Use right preconditioning.
"Left"- Use left preconditioning.
"ColumnOrdering"type:stringadvanced-
Column ordering algorithm for sparse direct solvers. If omitted, Palace uses the sparse direct solver's default ordering.
"Default"- Use the sparse direct solver's default column ordering.
"METIS"- Use METIS column ordering.
"ParMETIS"- Use ParMETIS column ordering.
"Scotch"- Use Scotch column ordering.
"PTScotch"- Use PT-Scotch column ordering.
"PORD"- Use PORD column ordering.
"AMD"- Use AMD column ordering.
"RCM"- Use reverse Cuthill-McKee ordering.
"STRUMPACKCompressionType"type:stringdefault:"None"advanced-
STRUMPACK compression type.
"None"- Disable low-rank compression.
"BLR"- Use block low-rank compression.
"HSS"- Use hierarchically semi-separable compression.
"HODLR"- Use hierarchically off-diagonal low-rank compression.
"ZFP"- Use ZFP lossy compression.
"BLR-HODLR"- Use the BLR-HODLR hybrid compression mode.
"ZFP-BLR-HODLR"- Use the ZFP-BLR-HODLR hybrid compression mode.
"STRUMPACKCompressionTol"type:numberdefault:0.001constraint:≥ 0.0advanced-
Tolerance for STRUMPACK lossy compression.
"STRUMPACKLossyPrecision"type:integerdefault:16constraint:≥ 0advanced-
Precision bits for STRUMPACK ZFP lossy compression.
"STRUMPACKButterflyLevels"type:integerdefault:1constraint:≥ 0advanced-
Number of butterfly levels for STRUMPACK HODLR compression.
"SuperLU3DCommunicator"type:booleandefault:falseadvanced-
Use a 3D process grid communicator for SuperLU_DIST.
"AMSVectorInterpolation"type:booleandefault:falseadvanced-
Use vector interpolation in AMS.
"AMSSingularOperator"type:booleanadvanced-
Indicate to AMS that the operator is singular (e.g. magnetostatics with no essential boundary conditions). If omitted, Palace enables this for magnetostatic simulations and disables it otherwise.
"AMGAggressiveCoarsening"type:booleanadvanced-
Enable aggressive coarsening in BoomerAMG. If omitted, Palace enables this for electrostatic, magnetostatic, and transient simulations, and disables it otherwise.
"AMSMaxIts"type:integerconstraint:> 0-
Number of AMS iterations per preconditioner application when geometric multigrid is enabled (
"MGMaxLevels"> 1). If omitted, Palace uses/Solver/Order. "DivFreeTol"type:numberdefault:1.0e-12constraint:≥ 0.0-
Relative tolerance for divergence-free cleaning used in the eigenmode simulation type. Ignored when a nonzero Floquet wave vector is specified or when a nonzero LondonDepth is used.
"DivFreeMaxIts"type:integerdefault:1000constraint:≥ 0-
Maximum number of iterations for divergence-free cleaning. Ignored under the same conditions as
"DivFreeTol". "EstimatorTol"type:numberdefault:1.0e-6constraint:≥ 0.0-
Relative tolerance for the flux projection solve used in the error estimate calculation.
"EstimatorMaxIts"type:integerdefault:10000constraint:≥ 0-
Maximum number of iterations for the flux projection solve used in the error estimate calculation.
"EstimatorMG"type:booleandefault:false-
When
true, uses a multigrid preconditioner with AMG coarse solve for the error estimator linear solver instead of Jacobi. "GSOrthogonalization"type:stringdefault:"MGS"advanced-
Gram-Schmidt variant used to orthogonalize vectors in Krylov subspace methods and other parts of the solver.
"MGS"- Modified Gram-Schmidt.
"CGS"- Classical Gram-Schmidt.
"CGS2"- Two-step classical Gram-Schmidt with reorthogonalization.