model.sol()
Solver sequences.
Syntax
model.sol().create(<tag>)
model.sol().create(<tag>,<studytag>)
model.sol().create(<tag>,<studytag>,<varstag>)
model.sol().remove(<tag>)
 
model.sol(<tag>).create(<ftag>,<oper>)
model.sol(<tag>).feature().remove(<ftag>)
model.sol(<tag>).feature(<ftag>).create(<f2tag>,<oper>)
model.sol(<tag>).feature(<ftag>).set(property,<value>)
model.sol(<tag>).feature(<ftag>).getAllowedPropertyValues(property);
model.sol(<tag>).attach(<stag>)
model.sol(<tag>).clearSolutionData()
model.sol(<tag>).copySolution(<ctag>)
model.sol(<tag>).createAutoSequence(<stag>)
model.sol(<tag>).createSolution()
model.sol(<tag>).updateSolution()
model.sol(<tag>).isEmpty()
model.sol(<tag>).isInitialized()
model.sol(<tag>).run(<ftag>)
model.sol(<tag>).runFrom(<ftag>)
model.sol(<tag>).runFromTo(<ftagstart>,<ftagstop>)
model.sol(<tag>).runAll()
model.sol(<tag>).run()
model.sol(<tag>).continueRun()
Description
model.sol().create(<tag>) adds a solver sequence to the model.
model.sol().create(<tag>,<studytag>) adds a solver sequence to the model. The constructor adds one feature of the type StudyStep to the solver sequence with the tag <studytag>. This StudyStep feature is connected to a study step (see model.study()).
model.sol().create(<tag>,<studytag>,<varstag>) adds a solver sequence to the model. The constructor adds one feature of the type StudyStep with the tag <studytag> and one feature of the type Variables with the tag <varstag> to the solver sequence.
model.sol().remove(<tag>) removes a solver sequence from the model.
model.sol(<tag>).create(<ftag>,<oper>) creates a solver feature. Each solver feature is a solver operation.
model.sol(<tag>).feature().remove(<ftag>) removes the solver feature <ftag>.
model.sol(<tag>).feature(<ftag>).set(property,<value>) sets the property property for the feature <ftag>.
model.sol(<tag>).feature(<ftag>)).getAllowedPropertyValues(property) returns the set of allowed values for a property if the set is a finite set of strings; otherwise, it returns null.
model.sol(<tag>).attach(<stag>) attaches a solver sequence with tag <tag> to a study with tag <stag>, which makes it visible under that study.
model.sol(<tag>).clearSolutionData() clears computed solution data associated with the solver sequence <tag>. Solution selection settings and settings in results features associated with the solution are not modified.
model.sol(<tag>).setClusterStorage(<value>) sets the solution storage format used on clusters. Use the <value> "all" to store the solution on all cluster nodes and the <value> "single" to store the solution only on a single cluster node.
model.sol(<tag>).getClusterStorage() returns "all" if the solution is stored on all cluster nodes and "single" if the solution is only stored a single cluster node.
model.sol(<tag>).copySolution(<ctag>) copies the solution data associated with the solver sequence <tag> to a new solver sequence <ctag>. The features are not copied.
model.sol(<tag>).createAutoSequence(<stag>) creates a solver sequence of features automatically from the study <stag>. The sequence of study steps are used as input to the sequence generation algorithm but also the physics used in the study steps are used to automatically adopt the solver settings.
model.sol(<tag>).createSolution() creates a solution object from one or more set operations (setU(..), ...), see Solution Creation for details.
model.sol(<tag>).updateSolution() updates a solution data associated with the solver sequence to make it consistent with the current model.
model.sol(<tag>).isEmpty() is true if there is no solution data or if all solution data has been cleared.
model.sol(<tag>).isInitialized() is true if the solution is a valid (initialized) object. Even if the solution has been cleared, isInitialized is true (use isEmpty to check for cleared solution data).
model.sol(<tag>).run(<ftag>) runs the features for a solver sequence up to and including the feature <ftag>.
model.sol(<tag>).runFrom(<ftag>) runs the features for a solver sequence from and including the feature <ftag>.
model.sol(<tag>).runFromTo(<ftagstart>,<ftagstop>) runs the features for a solver sequence from and including the feature <ftagstart> to and including the feature <ftagstop>.
model.sol(<tag>).runAll() and  model.sol(<tag>).run() run all the features for a solver sequence.
model.sol(<tag>).continueRun() continues to run a solver sequence.
Examples
Assume that a study st1 represents one stationary study step with the tag stat1 for some equations.
Code for Use with Java
model.sol().create("s","step1","vars1");
model.sol("s").feature("step1").set("study","st1");
model.sol("s").feature("step1").set("studystep","stat1");
model.sol("s").create("solver1","Stationary");
Code for Use with MATLAB
model.sol.create('s','step1','vars1');
model.sol('s').feature('step1').set('study','st1');
model.sol('s').feature('step1').set('studystep','stat1');
model.sol('s').create('solver1','Stationary');
Assume that a second study step with frequency response is added to the study with tag freq1 and that you want to make a frequency sweep from 10 to 1000 using the parametric solver and the solution above as the linearization point (bias solution).
Code for Use with Java
model.sol("s").create("step2","StudyStep");
model.sol("s").feature("step2").set("study","st1");
model.sol("s").feature("step2").set("studystep","freq1");
model.sol("s").create("vars2","Variables");
SolverFeature s2 = (SolverFeature) model.sol("s").create("solver2","Stationary");
s2.set("nonlin","linper");     // (*)
s2.set("linpmethod","sol");
s2.set("linpsol", "s");
s2.set("storelinpoint", "on");
s2.create("par","Parametric");
s2.feature("par").set("pname","freq");
s2.feature("par").set("plist",new double[]{10,1000});
s2.runAll();
Code for Use with MATLAB
model.sol('s').create('step2','StudyStep');
model.sol('s').feature('step2').set('study','st1');
model.sol('s').feature('step2').set('studystep','freq1');
model.sol('s').create('vars2','Variables');
s2 = model.sol('s').create('solver2','Stationary');
s2.set('nonlin','linper');     // (*)
s2.set('linpmethod','sol');
s2.set('linpsol', 's');
s2.set('storelinpoint', 'on');
s2.create('par','Parametric');
s2.feature('par').set('pname','freq');
s2.feature('par').set('plist',[10,1000]);
s2.runAll;
At this point the solution s is associated to the study step freq1 (but it depends indirectly on the bias study step stat1 as well).
(*) Uses the small-signal study functionality, which makes it possible to access also the linearization point for postprocessing together with the small-signal solution. Here it is assumed that the bias problem and the small-signal problem can be set up independently for the two study steps.
Compatibility
From version 5.3a, the method
model.sol(<tag>).clearSolution()
is deprecated and replaced by the method
model.sol(<tag>).clearSolutionData()
since clearSolutionData generally works as expected, while clearSolution clears settings unexpectedly.
See Also
model.study()