package MolecularOrbital @ISA = qw() sub SetSourcePath sub SetSourcePath { my ($this,$p)= return $this->{SourcePath} = $p; sub SourcePath return shift->{SourcePath}; sub SetTitle sub SetTitle { my ($this,$t)= return $this->{Title} = $t; sub Title return shift->{Title}; sub SetCrystal sub SetCrystal { my ($this,$crystal) = return $this->{'Crystal'} = $crystal; sub Crystal return shift->{'Crystal'}; sub SetUHF sub SetUHF { my ($this,$f)= return $this->{IsUHF} = $f; sub UHF return shift->{IsUHF}; sub SetnAlphaElectrons sub SetnAlphaElectrons { my ($this,$n)= return $this->{nAlphaElectrons} = $n; sub nAlphaElectrons return shift->{nAlphaElectrons}; sub SetnBetaElectrons sub SetnBetaElectrons { my ($this,$n)= return $this->{nBetaElectrons} = $n; sub nBetaElectrons return shift->{nBetaElectrons}; sub SetBase sub SetBase { my ($this,$iOrb,$base)= return $this->{Base}->[$iOrb] = $base; sub SetWFCoeff my ($this, $iMO, $ibase, $coeff) = @_; return $this->{WFCoeff}->[$iMO][$ibase] = $coeff; sub nData sub nData { my ($this)= return scalar @$a; sub nWF return shift->nData(); sub nBase return 0 if(!$p); sub RootNumber sub RootNumber { my ($this,$i)= return $this->{RootNumber}->[$i]; sub Symmetry sub Symmetry { my ($this,$i)= return $this->{Symmetry}->[$i]; sub Energy sub Energy { my ($this,$i)= return $this->{Energy}->[$i]; sub Spin sub Spin { my ($this,$i)= return $this->{Spin}->[$i]; sub Ne sub Ne { my ($this,$i)= return $this->{Ne}->[$i]; sub Base sub Base { my ($this,$i)= return $this->{Base}->[$i]; sub WFCoeff sub WFCoeff { my ($this,$iMO,$ibase)= return $this->{WFCoeff}->[$iMO][$ibase]; sub pRootNumber return shift->{RootNumber}; sub pSymmetry return shift->{Symmetry}; sub pEnergy return shift->{Energy}; sub pNe return shift->{Ne}; sub pSpin return shift->{Spin}; sub pBase return shift->{Base}; sub pWFCoeff return shift->{WFCoeff}; sub Unit return shift->{Unit}; sub SetUnit sub SetUnit { my ($this,$u)= return $this->{Unit} = $u; sub SetYName sub SetYName { my ($this,$name)= return $this->{YName} = $name; sub YName return shift->{YName}; sub GetYName return shift->{YName}; sub GetYMinMax sub GetYMinMax { my $this = return ($this->{YMin}, $this->{YMax}); sub GetMinMax sub GetMinMax { my $this = return ($this->{YMin}, $this->{YMax}); sub nRedMOs my ($this, $spin) = @_; return $this->nData() if(!defined $spin); return $n; sub new my ($module) = @_; return $this; sub DESTROY my $this = shift; sub NormalizeWFCoeff my ($this) = @_; sub Add my ($this, $index, $RootNumber, $symmetry, $e, $ne, $spin) = @_; return $this->nData(); sub CalYMinMax my ($this) = @_; return unless($pe); return if($nData <= 0); return ($min, $max); sub CalMinMax my ($this) = @_; return 1;