ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/types/AtomType.hpp
Revision: 1632
Committed: Fri Oct 22 20:21:36 2004 UTC (19 years, 8 months ago) by gezelter
File size: 1652 byte(s)
Log Message:
More on AtomType and DirectionalAtomType

File Contents

# User Rev Content
1 gezelter 1631 #ifndef TYPES_ATOMTYPE_HPP
2     #define TYPES_ATOMTYPE_HPP
3    
4     #include "utils/PropertyMap.hpp"
5     #define __C
6     #include "types/AtomTypeProperties.h"
7     #include "UseTheForce/DarkSide/atype_interface.h"
8    
9     namespace oopse {
10     /**
11     * @class AtomType
12     * AtomType is what OOPSE looks to for unchanging data about an atom.
13     * Things that belong to AtomType are universal properties (i.e. does
14     * this atom have a Charge? What is it's mass?) Dynamic properties of
15     * an atom are not intended to be properties of an atom type
16     */
17     class AtomType{
18    
19     public:
20    
21     AtomType();
22     ~AtomType();
23     /**
24     * Finishes off the AtomType by communicating the logical portions of the
25     * structure to the Fortran atype module
26     */
27     void complete();
28    
29     void setMass(double m) { mass = m; }
30     double getMass(void) { return mass; }
31    
32     void setIdent(int id) {atp.ident = id;}
33     int getIdent() {return atp.ident;}
34 gezelter 1632
35     void setName(char* n) {strcpy(name, n);}
36     char* getName() {return name;}
37 gezelter 1631
38     void setLennardJones() { atp.is_LennardJones = 1; }
39     bool isLennardJones() { return atp.is_LennardJones; }
40    
41     void setElectrostatic() { atp.is_Electrostatic = 1; }
42     bool isElectrostatic() { return atp.is_Electrostatic; }
43 gezelter 1632
44 gezelter 1631 void setEAM() { atp.is_EAM = 1; }
45     bool isEAM() { return atp.is_EAM; }
46 gezelter 1632
47 gezelter 1631 void setCharge() { atp.is_Charge = 1; atp.is_Electrostatic = 1;}
48     bool isCharge() { return atp.is_Charge; }
49 gezelter 1632
50     PropertyMap properties;
51    
52 gezelter 1631 private:
53    
54     AtomTypeProperties atp;
55     double mass;
56 gezelter 1632 char* name;
57 gezelter 1631
58     };
59     }
60     #endif