| 148 | } |
| 149 | |
| 150 | void |
| 151 | BackgroundGrid::clear(const ID& structuralNodes) |
| 152 | { |
| 153 | Domain* theDomain = OPS_GetDomain(); |
| 154 | if (theDomain == 0) return; |
| 155 | |
| 156 | // for each grid |
| 157 | reset(); |
| 158 | while (isEnd() == false) { |
| 159 | |
| 160 | // remove elements |
| 161 | std::vector<Element*>* eles = getElements(); |
| 162 | |
| 163 | if (eles != 0) { |
| 164 | for (int i=0; i<(int)eles->size(); i++) { |
| 165 | Element* ele = (*eles)[i]; |
| 166 | if (ele != 0) { |
| 167 | if (theDomain->removeElement(ele->getTag()) != 0) { |
| 168 | delete ele; |
| 169 | } |
| 170 | } |
| 171 | } |
| 172 | } |
| 173 | |
| 174 | // remove nodes |
| 175 | Node* node = getNode(); |
| 176 | if (node != 0) { |
| 177 | |
| 178 | if (structuralNodes.getLocationOrdered(node->getTag()) < 0) { |
| 179 | // remove pc |
| 180 | Pressure_Constraint* pc = theDomain->removePressure_Constraint(node->getTag()); |
| 181 | if (pc != 0) delete pc; |
| 182 | |
| 183 | if (theDomain->removeNode(node->getTag()) != 0) { |
| 184 | delete node; |
| 185 | } |
| 186 | } |
| 187 | } |
| 188 | |
| 189 | // remove data |
| 190 | if (iter->second != 0) { |
| 191 | delete iter->second; |
| 192 | iter->second = 0; |
| 193 | } |
| 194 | |
| 195 | next(); |
| 196 | } |
| 197 | |
| 198 | data.clear(); |
| 199 | iter = data.end(); |
| 200 | } |
| 201 | |
| 202 | GridIndex |
| 203 | BackgroundGrid::getIndex() const |
no test coverage detected