VTK
vtkAbstractElectronicData.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkAbstractElectronicData.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
24 #ifndef vtkAbstractElectronicData_h
25 #define vtkAbstractElectronicData_h
26 
27 #include "vtkCommonDataModelModule.h" // For export macro
28 #include "vtkDataObject.h"
29 
30 class vtkImageData;
31 
33 {
34 public:
36  virtual void PrintSelf(ostream& os, vtkIndent indent);
37 
39  virtual vtkIdType GetNumberOfMOs() = 0;
40 
42  virtual vtkIdType GetNumberOfElectrons() = 0;
43 
45  virtual vtkImageData * GetMO(vtkIdType orbitalNumber) = 0;
46 
50  virtual vtkImageData * GetElectronDensity() = 0;
51 
53  vtkImageData * GetHOMO() {return this->GetMO(this->GetHOMOOrbitalNumber());}
54 
56  vtkImageData * GetLUMO() {return this->GetMO(this->GetLUMOOrbitalNumber());}
57 
58  // Descripition:
59  // Returns the orbital number of the Highest Occupied Molecular Orbital.
61  {
62  return static_cast<vtkIdType>((this->GetNumberOfElectrons() / 2 ) - 1);
63  }
64 
65  // Descripition:
66  // Returns the orbital number of the Lowest Unoccupied Molecular Orbital.
68  {
69  return static_cast<vtkIdType>( this->GetNumberOfElectrons() / 2 );
70  }
71 
73 
75  bool IsHOMO(vtkIdType orbitalNumber)
76  {
77  return (orbitalNumber == this->GetHOMOOrbitalNumber());
78  }
80 
82 
84  bool IsLUMO(vtkIdType orbitalNumber)
85  {
86  return (orbitalNumber == this->GetLUMOOrbitalNumber());
87  }
89 
91  virtual void DeepCopy(vtkDataObject *obj);
92 
94 
96  vtkGetMacro(Padding, double);
98 
99 protected:
102 
103  double Padding;
104 
105 private:
106  vtkAbstractElectronicData(const vtkAbstractElectronicData&); // Not implemented
107  void operator=(const vtkAbstractElectronicData&); // Not implemented
108 };
109 
110 #endif
bool IsLUMO(vtkIdType orbitalNumber)
int vtkIdType
Definition: vtkType.h:275
Provides access to and storage of chemical electronic data.
a simple class to control print indentation
Definition: vtkIndent.h:38
bool IsHOMO(vtkIdType orbitalNumber)
topologically and geometrically regular array of data
Definition: vtkImageData.h:44
void PrintSelf(ostream &os, vtkIndent indent)
general representation of visualization data
Definition: vtkDataObject.h:64
virtual void DeepCopy(vtkDataObject *src)
#define VTKCOMMONDATAMODEL_EXPORT