GeneralBlock : ~IterateConfig, ~Extern

{

models = "";

ignoreModels = "";

quantities = "";

ignoreQuantities = "";

offDevices = no;

enter = yes;

failure = iterationCount >= if (firstStep,

iterationLimit,

iterationLimitStep);

while = updateNorm > finalNorm && rhsNorm > rhsFinalNorm;

ignoreDer = "";

}

IterateConfigDefaults

{

maxDamp = 1.0;

minDamp = 0.008;

iterationLimit = 500;

iterationLimitStep = 200;

finalNorm = 1e-2;

rhsFinalNorm = 1e-10;

transform = yes;

dampScheme = "potential";

ignoreDerNorm = 1;

delta = 0.1;

}

IterateConfig : IterateConfigDefaults;

MyIterateConfig : IterateConfigDefaults

{

iterationLimit = 100;

iterationLimitStep = 50;

dampScheme = "bank";

}

IterateConfig : MyIterateConfig;

Loop : GeneralBlock; DDBlock : GeneralBlock { models = ~Eas.DD.TransOrDC; quantities = ~Quantities.DD; } HDBlock : GeneralBlock { models = ~Eas.HD.TransOrDC; quantities = ~Quantities.HD; ignoreDer = if (updateNorm > ignoreDerNorm, "EleDEtm,HolDHtm", ""); }

Each iteration block can contain other arbitrarily nested sub-blocks. For each block the equations to use are defined which will be solved by the simulator using a Newton iteration scheme until a block-specific termination criterion is satisfied. The criteria can be arbitrary expressions containing norms, iteration counters, time step information, and much more. After each iteration the sub-blocks are entered recursively. Blocks can be empty to form a linear sequence of sub-blocks only. The following sections give more details on what can be defined for each iteration block.

- D1.1 Equations and Quantities
- D1.2 Termination Criterion
- D1.3 Failure Criterion
- D1.4 Enter Criterion
- D1.5 Damping Scheme
- D1.6 Full versus Partial System Matrix

1999-05-31