package DiodeRsRshJpv @ISA = qw() sub SetTemperature my ($this, $T) = @_; sub new my ($module) = @_; return $this; sub DESTROY sub DESTROY { my $this = sub CalSCFTotalIV my ($this, $Vtarget, $J0, $n, $Rs, $Rsh, $Jpv, $LSQMethod, $EPS, $nMaxIter, $iPrintLevel) = @_; return ($Vtotal, $Jtotal); sub { $this->MinimizationFuncIVDiode($Vtarget, $J0, $n, $Rs, $Rsh, $Jpv, sub { Optimize::BuildDifferentialMatrixes( return ($Vdiode, $Jtotal); sub CalDiodeIV my ($this, $Vdiode, $J0, $n, $Rs, $Rsh, $Jpv) = @_; return ($Vtotal, $Jtotal); sub MinimizationFuncIVDiode my ($this, $Vtarget, $J0, $n, $Rs, $Rsh, $Jpv, $pVars, $iPrintLevel) = @_; return ($Vtotal - $Vtarget)**2;