ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/branches/new_design/OOPSE-4/src/types/AtomType.cpp
(Generate patch)

Comparing branches/new_design/OOPSE-4/src/types/AtomType.cpp (file contents):
Revision 1768 by tim, Mon Nov 15 23:00:32 2004 UTC vs.
Revision 1769 by tim, Tue Nov 23 06:03:47 2004 UTC

# Line 30 | Line 30 | name_space oopse {
30      atp_.is_FLARB = 0;  
31    }
32      
33 <  void AtomType::complete() {
33 >  void AtomType::makeFortranAtomType() {
34      
35      int status;
36  
# Line 65 | Line 65 | void AtomType::addProperty(GenericData* genData) {
65      }
66    }
67  
68 +
69 + void AtomType::complete() {
70 +    int isError;
71 +    GenericData* data;
72 +    
73 +    //notify a new LJtype atom type is created
74 +    if (isLennardJones()) {
75 +        data = getPropertyByName("LennardJones");
76 +        if (data != NULL) {
77 +            LJParamGenericData* ljData = dynamic_cast<LJParamGenericData*>(data);
78 +
79 +            if (ljData != NULL) {
80 +                LJParam ljParam = ljData->getData();
81 +                
82 +                newLJtype(&atp_.ident, &ljParam.sigma, &ljParam.epsilon, &isError);
83 +
84 +                if (isError != 0) {
85 +                    sprintf( painCave.errMsg,
86 +                           "Fortran rejected newLJtype\n");
87 +                    painCave.severity = OOPSE_ERROR;
88 +                    painCave.isFatal = 1;
89 +                    simError();          
90 +                }
91 +                
92 +            } else {
93 +                    sprintf( painCave.errMsg,
94 +                           "Can not cast GenericData to LJParam\n");
95 +                    painCave.severity = OOPSE_ERROR;
96 +                    painCave.isFatal = 1;
97 +                    simError();          
98 +            }            
99 +        } else {
100 +            sprintf( painCave.errMsg, "Can not find Parameters for LennardJones\n");
101 +            painCave.severity = OOPSE_ERROR;
102 +            painCave.isFatal = 1;
103 +            simError();          
104 +        }
105 +    }
106 +
107 +    if (isCharge()) {
108 +        data = getPropertyByName("Charge");
109 +        if (data != NULL) {
110 +            DoubleGenericData* doubleData= dynamic_cast<DoubleGenericData*>(data);
111 +
112 +            if (doubleData != NULL) {
113 +                double charge = doubleData->getData();
114 +                newChargeType(&atp_.ident,, &charge, &isError);
115 +
116 +                if (isError != 0) {
117 +                    sprintf( painCave.errMsg,
118 +                           "Fortran rejected newChargeType\n");
119 +                    painCave.severity = OOPSE_ERROR;
120 +                    painCave.isFatal = 1;
121 +                    simError();          
122 +                }
123 +            } else {
124 +                    sprintf( painCave.errMsg,
125 +                           "Can not cast GenericData to DoubleGenericData\n");
126 +                    painCave.severity = OOPSE_ERROR;
127 +                    painCave.isFatal = 1;
128 +                    simError();          
129 +            }
130 +        } else {
131 +            sprintf( painCave.errMsg, "Can not find Charge Parameters\n");
132 +            painCave.severity = OOPSE_ERROR;
133 +            painCave.isFatal = 1;
134 +            simError();          
135 +        }
136 +    }
137 +
138 +    if (isEAM()) {
139 +        data = getPropertyByName("EAM");
140 +        if (data != NULL) {
141 +            EAMParamGenericData* eamData = dynamic_cast<EAMParamGenericData*>(data);
142 +
143 +            if (eamData != NULL) {
144 +
145 +                EAMParam eamParam = eamData->getData();
146 +                
147 +
148 +                newEAMtype(&eamParam.latticeConstant, &eamParam.nrho, &eamParam.drho,  &eamParam.nr, &eamParam.dr, &eamParam.rcut,
149 +                                &eamParam.rvals[0], &eamParam.rhovals[0], &eamParam.Frhovals[0], &atp_.ident,, &isError );
150 +
151 +                if (isError != 0) {
152 +                    sprintf( painCave.errMsg,
153 +                           "Fortran rejected newEAMtype\n");
154 +                    painCave.severity = OOPSE_ERROR;
155 +                    painCave.isFatal = 1;
156 +                    simError();          
157 +                }
158 +            } else {
159 +                    sprintf( painCave.errMsg,
160 +                           "Can not cast GenericData to EAMParam\n");
161 +                    painCave.severity = OOPSE_ERROR;
162 +                    painCave.isFatal = 1;
163 +                    simError();          
164 +            }
165 +        } else {
166 +            sprintf( painCave.errMsg, "Can not find EAM Parameters\n");
167 +            painCave.severity = OOPSE_ERROR;
168 +            painCave.isFatal = 1;
169 +            simError();          
170 +        }
171 +    }
172 +
173 +    
174 + }
175 +
176   void AtomType::addProperty(GenericData* genData) {
177      properties_.addProperty(genData);  
178   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines