Solver Object

This object controls the Wakefield solver.

 

General

Wakefield Solver Settings

Eigenmode Solver Settings

General Methods

FrequencyRange ( double fmin, double fmax )

Sets the frequency range for the simulation. Changing the frequency range has several side effects. The mesh will be changed and all previous simulation results will be deleted. However, before the frequency range is actually changed, a dialog window will appear that asks to save the old results to another file.

Mesh

PBAFillLimit ( double percentage )

Defines when a cell should be treated as entirely filled with Perfectly Conducting Material (PEC). So if a cell is filled with more than percentage of the cell with PEC, the entire Cell will be filled with PEC. For other materials this setting has no effect. Generally, this setting should not be changed.

 

UseSplitComponents ( bool flag )

Specifies if the matrix calculation is performed using split components (flag = True) or not (flag = False).

 

AlwaysExludePec  ( bool flag )

This method offers the possibility to automatically exclude all PEC regions from the calculation. In case that large PEC regions exist this option may produce a significant speed-up of the simulation.

MPI Computation

MPIParallelization  ( bool flag )

Enable or disable MPI computation for solver.  

Queries

GetFmin double

Returns the minimum defined frequency.

 

GetFmax double

Returns the maximum defined frequency.

 

GetNFsamples int

Returns the total number of frequency points that are used to represent the scattering parameters.

 

GetNumberOfPorts int

Returns the number of defined Ports.

 

ArePortsSubsequentlyNamed bool

Inquires whether the ports are consecutively numbered or not. If they are, the total number of ports equals to the last port name. Otherwise the last name might be higher.

 

GetStimulationPort int

Returns -1, if ports = All, 0 if ports = Selected Ports and -2, if plane wave excitation is active.

 

GetStimulationMode int

Returns 0, if stimulation port is not a wave guide port, returns -1, if modes = All and if there is a wave guide port.

 

GetTotalSimulationTime long

Returns the total simulation time of a complete transient solver start, as the case may be including several port excitations.

 

GetMatrixCalculationTime long

Returns the running time of the matrix calculator.

 

GetLastSolverTime long

Returns the simulation time of the last performed solver run.

Defaults

PBAFillLimit (99)

UseSplitComponents (True)

SParaAdjustment (True)

PrepareFarfields (True)

Wakefield Solver General

Start int

Starts the Time Domain Simulation with the current settings and returns 1 if the calculation is successfully finished and 0 if it failed.

 

MeshAdaption ( bool flag )

If MeshAdaption is enabled (flag = True) several Simulation runs are started to automatically find the optimum mesh for the given Problem.

 

UseDistributedComputing ( bool flag )

If flag is set to True this method enables the distributed calculation of different solver runs across the network.

 

DistributeMatrixCalculation( bool flag )

If flag is set to True the matrix calculation is performed separately for each distributed solver run on the remote machines. Otherwise the matrix calculation is done only once on the machine where the frontend is running.

 

HardwareAcceleration ( bool flag )

If flag = true, hardware acceleration for the transient solver is activated. Please note, that a hardware acceleration card has to be inserted into your computer in order to profit from this setting.

 

StoreTDResultsInCache ( bool flag )

If flag is set to True this method stores results of the time domain solver in the result cache.

 

FrequencySamples ( int nSamples )

Defines the resolution of all frequency domain signals for the next simulation. This setting has no significant influence on the total simulation time. It only influences the Discrete Fourier Transform (DFT) that is used to transform the time domain signals into the frequency domain. nSamples will be the total number of frequency samples that the frequency domain signals will have.

 

TimeStepStabilityFactor ( double value )

Specifies a stability factor that is multiplied to the current valid time step. Note: Normally the current time step is matched to the stability limit, thus factor values greater than 1 may make the time domain simulation unstable.

 

NormalizeToReferenceSignal( bool flag )

In case of the default Gaussian excitation signal, which is predefined in CST MICROWAVE STUDIO, all frequency results of the transient solver are automatically normalized to the spectrum of this default signal in order to provide consistent broadband results, independent of the transient excitation signal. This allows convenient comparisons to e.g. frequency domain solver results.

However, selecting other signals for excitation, e.g. a rectangular pulse or an imported signal, this normalization step is not done by default. This means that in these cases all frequency results are purely represented by the unnormalized discrete Fourier transformation of the correspondent  transient data. In any case, you can still apply a normalization step to the selected reference signal in CST MICROWAVE STUDIO by enabling this check button, independent whether this signal is actually used or not. As mentioned above, changing this button has no influence when the default Gaussian excitation signal is used. The normalization to the default signal can be changed by using the command NormalizeToDefaultSignalWhenInUse.

In case of a transient co-simulation run, usually the excitation is driven from within CST DESIGN STUDIO. Consequently also the result normalization can be controlled here, either normalizing to a Gaussian reference signal or not. This can be defined for each task separately and consistently effects both, the frequency domain results in CST  MICROWAVE STUDIO as well as in CST DESIGN STUDIO.

 

NormalizeToDefaultSignalWhenInUse ( bool flag )

In case of the default gaussian excitation signal, which is always predefined in CST MICROWAVE STUDIO®, all frequency results of the transient solver are automatically normalized to the spectrum of this default signal in order to provide consistent broadband results, independent of the transient excitation signal. This allows convenient comparisons to e.g. frequency domain solver results. This behavior can be changed by calling this command with flag = false, then all frequency results are purely represented by the unnormalized discrete Fourier transformation of the correspondent transient data. Please note that this command has no influence when the default signal is not in usage for excitation.

 

AutomaticTimeSignalSampling ( bool flag )

If flag = true, the transient solver automatically samples all time signals that are written to disk to reduce the data amount while still fulfilling the sampling theorem. By deactivating this automatic functionality the signals are written with highest possible sampling rate, i.e. every timestep.

 

UseBroadBandPhaseShift ( bool flag )

If the flag is set to true, the phase shift defined either for a simultaneous excitation or for a circular/elliptical plane wave excitation will be considered as a broadband behavior, respectively.

 

SetBroadBandPhaseShiftLowerBound ( double value )

Method for the broadband phase shift functionality defined either for a simultaneous excitation or for a circular/elliptical plane wave excitation (UseBroadBandPhaseShift).

The broadband phase shift filter is computed by means of an Hilbert filter which guarantees accurate results in the frequency range [ lower bound factor * fMax, fMax ] where fMax is the upper simulation frequency range. Reducing the lower bound factor allows to enlarge the accuracy frequency range at the expense of higher complexity and computational costs for the filter evaluation.  

 

MatrixDump ( bool flag )

If flag = true, all solver relevant matrices are dumped to file.

 

RestartAfterInstabilityAbort ( bool flag )

If flag = true, the transient solver is automatically restarted twice with a reduced timestep after an instability abort. In case that the occurred instability is due to the time discretization, this process helps to provide a stable simulation during the restarted run.

 

MaximumNumberOfThreads ( int number )

Define the maximum number of parallel threads to be used for the transient solver run.

 

SetPMLType ( enum {"ConvPML", "GTPML"} key )

Define the PML formulation type. Allowed algorithms are ConvPML for the Convolution PML or GTPML for the Generalized PML theory.

Time Domain Solver Excitation

CalculateModesOnly ( bool flag )

If flag is True, the solver calculates only the port modes.

 

StimulationMode ( enum / int key )

Selects the mode to be used for excitation.

 

The parameter key may have one of the following values:

All

All modes will be excited once.

int modeNumber

The mode number to be used for excitation.

 

StimulationPort ( enum / int key )

Selects the port(s)  to be used for excitation.

 

The parameter key may have one of the following values:

All

All ports will be excited once.

Selected

Only those ports / modes are used for excitation that have been set by ExcitationPortMode.

"Plane Wave"

A plane wave will be used for excitation.

int portNumber

The port number (port name) to be used for excitation.

 

ResetExcitationModes

Resets the complete excitation list, which was previously defined by applying methods ExcitationPortMode or ExcitationCurrentDistribution.

 

ExcitationPortMode ( int port, int mode, double ampli, double phase/time, name signl, bool flag )

Defines the excitation signal signal that is used to excite the port mode mode at the port port. The excitation signal must be defined previously. The signal curve is modified due to the defined ampli and phase/time values, describing the amplitude and the time shift of the excitation. The latter can be defined as a time shift or a phase shift, using the SetSimultaneousExcitationOffset method. The boolean argument flag activates the time shift definition.

Note: If signal = "default", the chosen reference signal is used for excitation. MWS offers an Excitation Signal Library where different time signals can be chosen from. Time signals other than "default" can be chosen only if SimultaneousExcitation is set to True.

 

PhaseRefFrequency ( double value )

The phase values defined in the excitation list are converted into corresponding time shifts for the time signals by use of this reference frequency. If the reference frequency is set to '0', time shift instead of phase shift is activated. (see ExcitationPortMode Method)

 

SimultaneousExcitation ( bool flag )

Enables simultaneaous excitation.

 

SetSimultaneousExcitAutoLabel ( bool flag )

If a set of excitations has been defined for one simultaneous excitation run, an automatically generated label (as a prefix) is used to name the signals produced by the simulation. Use this method to activate this automatic labeling.

 

SetSimultaneousExcitationLabel ( name label )

If the SetSimultaneousExcitAutoLabel method is disabled, it is possible to manually define a prefix name for the signals produced by simultaneous excitation run.

 

SetSimultaneousExcitationOffset ( enum key )

This method determines the time shift definition between different time signals applied for simultaneous excitation.

The parameter key may have one of the following values:

"Timeshift"

The time shift value defined with the ExcitationPortMode method is directly used to shift the signals in time.

"Phaseshift"

The phase shift value defined with the ExcitationPortMode method is transferred in a time shift value using the phase reference frequency (PhaseRefFrequency method). This value is then used to shift the signals in time.

Time Domain Solver Waveguide Ports

WaveguideBroadband ( bool flag )

Switches the broad band waveguide boundary condition (BBP) for inhomogeneous ports on/off.

 

SetBBPSamples ( int nSamples )

Sets the number of frequency points used for a broad band port (BBP). Broad band ports are used for ports at inhomogeneous waveguides. The more points are used the more accurate the port operator will be. However the simulation time will increase as well (All chosen modes have to be simulated for each frequency point).

 

UseOpenBoundaryForHigherModes ( bool flag )

Determines whether unconsidered higher modes occurring at a waveguide port should be absorbed using a Mur open boundary (switch = True) or not (flag = False).

 

SetModeFreqFactor ( double value )

Specifies the frequency that is used for the waveguide port mode calculation. The factor is set relatively to the current frequency range. Therefore value may range between 0 and 1.

 

FullDeembedding ( bool flag )

Set flag to True to perform a calculation with inhomogeneous port accuracy enhancement ("full deembedding"). This implies that the source type is set automatically to All ports / All modes. If some inhomogeneous ports occur in the structure the port modes will be calculated with broadband information which is added to the result tree. After all solver runs have finished the complete S-parameter matrix is generated considering the broadband behavior of the port modes. The number of frequency samples for this procedure can be defined in the special solver settings/waveguide. For more detailed information see the waveguide port overview.

 

SetSamplesFullDeembedding ( int nSamples )

Sets the number of frequency samples for calculations with inhomogeneous port accuracy enhancement (FullDeembedding).

 

DispEpsFullDeembedding ( bool flag )

Consider the dispersive behavior of the permittivity in port materials (real and imaginary part) for calculations with inhomogeneous port accuracy enhancement.

 

SetVoltageWaveguidePort( int portname, double value, bool flag)

This command applies a pure voltage excitation to the waveguide port with the name portname. The voltage value defines the amplitude of the excitation. Please note that this special excitation is only valid for the basic (Q)TEM mode of a two-conductor port. With the flag you can enable or disable again this special treatment.

 

AdaptivePortMeshing ( bool flag )

Activates the adaptive port meshing feature to automatically calculate a more accurate line impedance and mode pattern. For this purpose the port mode solver runs several passes while adaptively refining the port mesh.

 

AccuracyAdaptivePortMeshing ( int nPercent )

Represents an accuracy limit for the relative error of the line impedance. The adaptive port meshing is finished when the line impedance has not changed more than this percentage value for two following passes or the maximum number of passes is reached.

 

PassesAdaptivePortMeshing ( int nPasses )

Restricts the number of passes in the adaptive port meshing if the port line impedance takes too long to converge.

Time Domain Solver Steady State

NumberOfPulseWidths ( int nPulses )

Limits the maximum simulation time. This setting should not be used to stop the simulation generally. By default the steady state monitor should stop it before the maximum simulation time is reached. If the simulation is stopped before the steady state monitors stop it, the calculated scattering parameters will be incorrect. The pulse width is directly related to the chosen frequency range. It is defined by the Gaussian pulse that is used for a default broadband time domain simulation.

 

SteadyStateLimit ( enum key )

This setting defines the steady state monitor. It influences the duration of the simulation. It is a value for the accuracy of the frequency domain signals that are calculated by Fourier Transformation of the time signals.

This setting has to be understood only in connection with the processing of the time signals. Errors made by discretising a structure can only be influenced by manipulating the mesh.

Every simulation stops at some time. This means, that the signals that are calculated are truncated at this point, regardless to their values. If these values are non zero the Fourier Transformation will produce an error, because only a part of the whole signal with all its non zero values has been used for the transformation. So the smaller the signals are, the more accurate the frequency domain values will be. To get a value for the accuracy not the signal amplitudes itself are used, but the total energy inside of the calculation domain. During the simulation the energy is frequently calculated and related to the maximum energy that has been monitored. This value in a logarithmic scale defines the accuracy.

 

The parameter key may have one of the following representation:

"accuracy_dB"

where accuracy_dB is an integer value (in dB unit) for the steady state monitor. It must belong to the interval [-80 , 0] dB.

"No Check"

The steady state monitor is disabled. The simulation stops after the defined NumberOfPulseWidths.

Time Domain Solver Lossy Metal and material special settings

SurfaceImpedanceOrder ( int order )

Specifies the order of the one dimensional surface impedance model. In case that the model order is increased the simulation result is enhanced at the expense of a higher calculation effort.

 

ActivatePowerLoss1DMonitor ( bool flag )

Activates the computation of the power dissipated by the dispersive electric and magnetic materials and by the lossy metal and broadband surface impedance elements (i.e. ohmic sheet, tabulated surface impedance and corrugated wall).

A 1D curve displaying the overall power dissipated by these elements as a function of frequency is computed and displayed in the "1D Results" tree subfolder.

The selected monitor frequencies for the dispersive electric and magnetic materials are chosen in correspondence of the 3D frequency field monitors, where the electric and magnetic fields are computed. Please note that the computed power is obtained summing up the contribution of those fields only. This is especially important when subvolume field monitors are defined as the losses are computed in the corresponding subvolume only.

The selected monitor frequencies for the lossy metal and surface impedance elements are chosen in correspondence of the 2D and 3D frequency field monitors defined by the users and of the far field monitors as well.

The information provided by the dissipated power curve offers a better insight into the model power efficiency and allows an accurate energy balance evaluation.

Time Domain Solver Plasma and Nonlinear material Monitor

SetDispNonLinearMaterialMonitor ( bool flag )

Activates the computation of the plasma and nonlinear material monitor. In case of nonlinear plasma material the charge density will be recorded. In case of dispersive nonlinear material the instantaneous equivalent eps and mue variation due to the nonlinearity will be recorded.

 

ActivateDispNonLinearMaterialMonitor ( double TStart , double TStep , double TEnd , bool UseTEnd )

Define the parameters for the time domain plasma and nonlinear material monitor. In details TStart is the start time for the time monitoring. TStep is the desired step width for the time monitoring. Together with start and end time this value determines the full number of recorded time samples. Note that time monitors possibly need a great amount of disk memory if the step width is chosen too small. If the flag UseTEnd is true then TEnd specifies the ending time for the recording, otherwise the recording will continue up to the end of the calculation.

Time Domain Solver Mesh

UseTSTAtPort ( bool flag )

Specifies if TST is used in the port region of a waveguide port (flag = True) or not (flag = False).  

 

SetSubcycleState (enum {"Automatic", "Activate", "Deactivate"} key )

Controls the allowance of subcycles concerning the time step calculation of the time domain algorithm.

 

SetSubgridCycleState (enum {"Automatic", "Activate", "Deactivate"} key )

In case that the Multilevel Subgridding Scheme is activated this command controls the allowance of subgrid specific cycling concerning the time step calculation of the time domain algorithm. If selected automatically or by user the different grid levels are calculated with different time steps.

 

SimplifiedPBAMethod ( bool flag )

This method activates a simplified PBA formulation for the transient simulation without any timestep reduction or usage of subcycled updates. This advantage is gained by a slight loss of accuracy and decrease of convergence.

Time Domain Solver Defaults

AutoNormImpedance (False)

NormingImpedance (50.0)

MeshAdaption (False)

UseDistributedComputing (False)

StoreTDResultsInCache (False)

ConsiderTwoPortReciprocity (True)

EnergyBalanceLimit (0.03)

TimeStepStabilityFactor (1.0)

AutomaticTimeSignalSampling (True)

UseBroadBandPhaseShift (False)

SParaAdjustment (True)

PrepareFarfields (True)

CalculateModesOnly (False)

StimulationMode (1)

SetBBPSamples (5)

WaveguideBroadband (False)

UseOpenBoundaryForHigherModes (False)

SetModeFreqFactor (0.5)

FullDeembedding (False)

SetSamplesFullDeembedding (20)

AdaptivePortMeshing (True)

AccuracyAdaptivePortMeshing (1)

PassesAdaptivePortMeshing (3)

NumberOfPulseWidths (20)

SteadyStateLimit ("-30")

UseArfilter (False)

ArMaxEnergyDeviation (0.1)

ArPulseSkip (1)

SetTimeWindow ("Rectangular", 100, False)

SurfaceImpedanceOrder (10)

ActivateSIPowerLossyMonitor (False)

SetBurningPlasmaDensityMonitor (False)

TimestepReduction (0.45)

UseTSTAtPort (True)

SetSubcycleState ("Automatic")

NumberOfSubcycles (4)

SubcycleFillLimit (70)

EnableSubgridding (False)

SetSubgridCycleState ("Automatic")

SimplifiedPBAMethod (False)

SetSimultaneousExcitAutoLabel (True)

SetSimultaneousExcitationOffset ("Phaseshift")

AlwaysExludePec (False)

RestartAfterInstabilityAbort (True)

HardwareAcceleration (False)

MPIParallelization (False)

SetPMLType ("ConvPML")

NormalizeToReferenceSignal (False)

NormalizeToDefaultSignalWhenInUse (True)

Time Domain Solver Examples

' User defined function that produces a sine of 30 MHz as excitation signal.

Option Explicit

Function ExcitationFunction(dtime As Double) As Double

ExcitationFunction = Sin(2*3.141*30*10^6*dtime)

End Function

 

' S-Parameter symmetry setup for a 3 port structure where all ports are symmetric to each other

With Solver

.ResetSParaSymm

.DefSParaSymm

.SPara ("1, 1")

.SPara ("2, 2")

.SPara ("3, 3")

.DefSParaSymm

.SPara ("2, 1")

.SPara ("3, 1")

.SPara ("3, 2")

End With

 

Eigenmode Solver General

AKSPenaltyFactor ( double value )

Sets a scaling factor, in order to avoid static solutions within the calculated spectrum. Usually this parameter is set to 1.0. Increasing this number (up to 10.0) leads to a longer simulation time, because more matrix vector multiplications are necessary.

 

AKSEstimation ( double estim )

Sets the estimation for the (p+1)th resonance frequency, when p modes have to be calculated by the AKS solver. If the estimation factor is set to 0.0 the solver will do an automatic estimation, which is based on the bounding boxs dimensions.

 

AKSIterations ( int nIter )

Sets the number of iterations for the eigenmode solver.

 

AKSAccuracy ( double acc )

Sets the desired accuracy of modes, calculated by the eigenmode-solver.

 

AKSReset

Resets the AKS solver settings to its default values.

 

AKSStart

Starts  the eigenmode calculation solver.

 

AKSEstimationCycles ( int nIter )

In case that the given accuracy limit for the AKS calculation is not achieved, the iteration will be repeated. This method specifies the number of repetition cycles that will be performed during the calculation.

 

AKSAutomaticEstimation ( bool flag )

Enable automatic estimation for AKS.

 

AKSCheckModes ( int nModes )

The number of eigenmodes used for the frequency converge check.

 

AKSMaximumDF ( double err )

The convergence error (Delta F) is determined as the maximum variation of the eigenmode frequencies between two subsequent passes.

 

AKSMaximumPasses ( int nModes )

This setting determines the maximum number of passes to be performed for the mesh adaption, even if the eigenmode frequencies have not sufficiently converged so far. This setting is useful to limit the total calculation time to reasonable amounts.

 

AKSMeshIncrement ( int inc )

This parameter determines the changing of the mesh expert system by

increasing the settings of Lines per wavelength and Lower mesh limit in the Mesh Properties dialog box.

 

AKSMinimumPasses ( int minPass )

The minimum number of passes which will be performed, even if the eigenmode frequencies do not change significantly.

Eigenmode Queries

AKSGetNumberOfModes int

Returns the number of defined modes.

Eigenmode Defaults

AKSPenaltyFactor (1.0)

AKSEstimation (0.0)

AKSIterations (2)

AKSAccuracy (1e-6)

AKSNFsamples (1001)

AKSEstimationCycles (2)

AKSAutomaticEstimation (True)

AKSSpecDensitySamples (1)

AKSCheckModes (10)

AKSMaximumDF (0.01)

AKSMaximumPasses (6)

AKSMeshIncrement (5)

AKSMinimumPasses (2)