VTK  9.1.0
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=========================================================================*/
22#ifndef vtkAbstractElectronicData_h
23#define vtkAbstractElectronicData_h
24
25#include "vtkCommonDataModelModule.h" // For export macro
26#include "vtkDataObject.h"
27
28class vtkImageData;
29
30class VTKCOMMONDATAMODEL_EXPORT vtkAbstractElectronicData : public vtkDataObject
31{
32public:
34 void PrintSelf(ostream& os, vtkIndent indent) override;
35
40
45
50
54 virtual vtkImageData* GetMO(vtkIdType orbitalNumber) = 0;
55
61
65 vtkImageData* GetHOMO() { return this->GetMO(this->GetHOMOOrbitalNumber()); }
66
70 vtkImageData* GetLUMO() { return this->GetMO(this->GetLUMOOrbitalNumber()); }
71
72 // Description:
73 // Returns the orbital number of the Highest Occupied Molecular Orbital.
75 {
76 return static_cast<vtkIdType>((this->GetNumberOfElectrons() / 2) - 1);
77 }
78
79 // Description:
80 // Returns the orbital number of the Lowest Unoccupied Molecular Orbital.
82 {
83 return static_cast<vtkIdType>(this->GetNumberOfElectrons() / 2);
84 }
85
90 bool IsHOMO(vtkIdType orbitalNumber) { return (orbitalNumber == this->GetHOMOOrbitalNumber()); }
91
96 bool IsLUMO(vtkIdType orbitalNumber) { return (orbitalNumber == this->GetLUMOOrbitalNumber()); }
97
101 void DeepCopy(vtkDataObject* obj) override;
102
104
108 vtkGetMacro(Padding, double);
110
111protected:
114
115 double Padding;
116
117private:
119 void operator=(const vtkAbstractElectronicData&) = delete;
120};
121
122#endif
Provides access to and storage of chemical electronic data.
virtual vtkImageData * GetMO(vtkIdType orbitalNumber)=0
Returns the vtkImageData for the requested molecular orbital.
~vtkAbstractElectronicData() override
void DeepCopy(vtkDataObject *obj) override
Deep copies the data object into this.
virtual vtkIdType GetNumberOfElectrons()=0
Returns the number of electrons in the molecule.
int GetDataObjectType() override
Returns VTK_ABSTRACT_ELECTRONIC_DATA.
vtkImageData * GetHOMO()
Returns vtkImageData for the Highest Occupied Molecular Orbital.
bool IsHOMO(vtkIdType orbitalNumber)
Returns true if the given orbital number is the Highest Occupied Molecular Orbital,...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkImageData * GetLUMO()
Returns vtkImageData for the Lowest Unoccupied Molecular Orbital.
virtual vtkIdType GetNumberOfMOs()=0
Returns the number of molecular orbitals available.
virtual vtkImageData * GetElectronDensity()=0
Returns vtkImageData for the molecule's electron density.
bool IsLUMO(vtkIdType orbitalNumber)
Returns true if the given orbital number is the Lowest Unoccupied Molecular Orbital,...
general representation of visualization data
topologically and geometrically regular array of data
Definition: vtkImageData.h:157
a simple class to control print indentation
Definition: vtkIndent.h:113
int vtkIdType
Definition: vtkType.h:332
#define VTK_ABSTRACT_ELECTRONIC_DATA
Definition: vtkType.h:119