::SpiceGenTcl::Ngspice::SimulatorsTop, Main, Index
ClassesTop, Main, Index
Batch [::SpiceGenTcl::Ngspice::Simulators]Top, Main, Index
Method summary
constructor | Constructor for the class. |
clearLog | Clear saved log by unsetting Log variable. |
configure | Configure properties. |
getLog | See ::SpiceGenTcl::Simulator.getLog |
readData | Reads raw data file, create RawFile object and return it's reference name. |
readLog | Reads log file of last simulation and save it's content to Log variable. |
run | See ::SpiceGenTcl::Simulator.run |
runAndRead | Runs netlist circuit file. |
Properties
Readable: -Command
, -LastRunFileName
, -data
, -log
, -name
, -runlocation
Writable: -Command
, -LastRunFileName
, -data
, -log
, -name
, -runlocation
Superclasses
Subclasses
constructor [::SpiceGenTcl::Ngspice::Simulators::Batch]Batch, Top, Main, Index
Creates batch ngspice simulator that can be attached to top-level Circuit.
Batch create OBJNAME name ?runLocation?
Batch new name ?runLocation?
Batch new name ?runLocation?
Parameters
name | Name of simulator object. |
runLocation | Location at which input netlist is stored and all output files will be saved, default is current directory. Optional, default . . |
method constructor {name {runLocation .}} { # Creates batch ngspice simulator that can be attached to top-level Circuit. # name - name of simulator object # runLocation - location at which input netlist is stored and all output files will be saved, # default is current directory my configure -name $name global tcl_platform if {[string match -nocase *linux* $tcl_platform(os)]} { my configure -Command ngspice } elseif {[string match -nocase "*windows nt*" $tcl_platform(os)]} { my configure -Command ngspice_con } my configure -runlocation $runLocation }
clearLog [::SpiceGenTcl::Ngspice::Simulators::Batch]Batch, Top, Main, Index
Clear saved log by unsetting Log variable.
OBJECT clearLog
method clearLog {} { # Clear saved log by unsetting Log variable. if {[info exists Log]} { unset log return } else { return -code error "Log does not exists for simulator '[my configure -name]'" } }
readData [::SpiceGenTcl::Ngspice::Simulators::Batch]Batch, Top, Main, Index
Reads raw data file, create RawFile object and return it's reference name.
OBJECT readData
method readData {} { # Reads raw data file, create RawFile object and return it's reference name. my variable data set data [::SpiceGenTcl::RawFile new "[my configure -runlocation]/[my configure -LastRunFileName].raw"] return }
readLog [::SpiceGenTcl::Ngspice::Simulators::Batch]Batch, Top, Main, Index
Reads log file of last simulation and save it's content to Log variable.
OBJECT readLog
method readLog {} { # Reads log file of last simulation and save it's content to Log variable. set logFile [open "[my configure -runlocation]/[my configure -LastRunFileName].log" r+] set log [read $logFile] close $logFile return }
runAndRead [::SpiceGenTcl::Ngspice::Simulators::Batch]Batch, Top, Main, Index
Runs netlist circuit file.
OBJECT runAndRead circuitStr ?-nodelete?
Parameters
circuitStr | Top-level netlist string. |
-nodelete | Flag to forbid simulation file deletion. |
method runAndRead {circuitStr args} { # Runs netlist circuit file. # circuitStr - top-level netlist string # -nodelete - flag to forbid simulation file deletion # Synopsis: circuitStr ?-nodelete? set arguments [argparse { -nodelete }] set firstLine [@ [split $circuitStr \n] 0] set runLocation [my configure -runlocation] set cirFile [open "${runLocation}/${firstLine}.cir" w+] puts $cirFile $circuitStr close $cirFile set rawFileName "${runLocation}/${firstLine}.raw" set logFileName "${runLocation}/${firstLine}.log" set cirFileName "${runLocation}/${firstLine}.cir" exec "[my configure -Command]" -b -r $rawFileName -o $logFileName $cirFileName my configure -LastRunFileName ${firstLine} my readLog my readData if {[info exists nodelete]==0} { file delete $rawFileName file delete $logFileName file delete $cirFileName } }
BatchLiveLog [::SpiceGenTcl::Ngspice::Simulators]Top, Main, Index
Method summary
clearLog | See Batch.clearLog |
configure | Configure properties. |
getLog | See ::SpiceGenTcl::Simulator.getLog |
readData | See Batch.readData |
readLog | See Batch.readLog |
run | See ::SpiceGenTcl::Simulator.run |
runAndRead | Runs netlist circuit file. |
Properties
Readable: -Command
, -LastRunFileName
, -data
, -log
, -name
, -runlocation
Writable: -Command
, -LastRunFileName
, -data
, -log
, -name
, -runlocation
Superclasses
runAndRead [::SpiceGenTcl::Ngspice::Simulators::BatchLiveLog]BatchLiveLog, Top, Main, Index
Runs netlist circuit file.
OBJECT runAndRead circuitStr ?-nodelete?
Parameters
circuitStr | Top-level netlist string. |
-nodelete | Flag to forbid simulation file deletion. |
method runAndRead {circuitStr args} { # Runs netlist circuit file. # circuitStr - top-level netlist string # -nodelete - flag to forbid simulation file deletion # Synopsis: circuitStr ?-nodelete? set arguments [argparse { -nodelete }] set firstLine [@ [split $circuitStr \n] 0] set runLocation [my configure -runlocation] set cirFile [open "${runLocation}/${firstLine}.cir" w+] puts $cirFile $circuitStr close $cirFile set rawFileName "${runLocation}/${firstLine}.raw" set logFileName "${runLocation}/${firstLine}.log" set cirFileName "${runLocation}/${firstLine}.cir" set command [list [my configure -Command] -b $cirFileName -r $rawFileName] set chan [open "|$command 2>@1"] set logData "" while {[gets $chan line] >= 0} { puts $line set logData [join [list $logData $line] \n] if {[eof $chan]} { close $chan } } close $chan my configure -LastRunFileName ${firstLine} my configure -log $logData my readData if {[info exists nodelete]==0} { file delete $rawFileName file delete $logFileName file delete $cirFileName } }