package DiodeRsParallelRsRshJpv @ISA = qw() sub SetTemperature my ($this, $T) = @_; sub new my ($module) = @_; return $this; sub DESTROY sub DESTROY { my $this = sub CalSCFTotalIV my ($this, $Vtarget, $J01, $n1, $Rs1, $J02, $n2, $Rs2, $Rs, $Rsh, $Jpv, $LSQMethod, $EPS, $nMaxIter, $iPrintLevel) = @_; return ($Vtotal, $Jtotal); sub { $this->MinimizationFuncIV($Vtarget, $J01, $n1, $Rs1, $J02, $n2, $Rs2, $Rs, $Rsh, $Jpv, sub { Optimize::BuildDifferentialMatrixes( return ($Vdiode, $Jtotal); sub CalTotalIV my ($this, $Vdiode, $J01, $n1, $Rs1, $J02, $n2, $Rs2, $Rs, $Rsh, $Jpv) = @_; return ($Vtotal, $Jtotal); sub MinimizationFuncIV my ($this, $Vtarget, $J01, $n1, $Rs1, $J02, $n2, $Rs2, $Rs, $Rsh, $Jpv, $pVars, $iPrintLevel) = @_; return ($Vtotal - $Vtarget)**2; sub CalSCFTotalIVdiode1 my ($this, $Vtarget, $J0, $n, $Rs) = @_; return $this->{DiodeRs}->CalSCFTotalIV($Vtarget, $J0, $n, $Rs);