| 5221 | } |
| 5222 | |
| 5223 | int MPCORecorder::writeModelLocalAxes() |
| 5224 | { |
| 5225 | #ifdef MPCO_TIMING |
| 5226 | mpco::Timer timer("writeModelLocalAxes"); timer.start(); |
| 5227 | #endif // MPCO_TIMING |
| 5228 | #ifdef MPCO_WRITE_LOC_AX_IS_VERBOSE |
| 5229 | std::stringstream ss; |
| 5230 | ss << "local axes:\n"; |
| 5231 | #endif // MPCO_WRITE_LOC_AX_IS_VERBOSE |
| 5232 | /* |
| 5233 | error flags |
| 5234 | */ |
| 5235 | int retval = 0; |
| 5236 | herr_t status = 0; |
| 5237 | /* |
| 5238 | allocate vectors for ID and local axes, only for elements that provide a response for local axes |
| 5239 | */ |
| 5240 | std::vector<int> buffer_el_id; |
| 5241 | std::vector<utils::locax::quaternion> buffer_el_data; |
| 5242 | /* |
| 5243 | element request |
| 5244 | */ |
| 5245 | int argc = 1; |
| 5246 | const char **argv = new const char*[argc]; |
| 5247 | argv[0] = "localAxes"; |
| 5248 | Vector vx(3); |
| 5249 | Vector vy(3); |
| 5250 | Vector vz(3); |
| 5251 | /* |
| 5252 | loop over all element group-by-tag |
| 5253 | */ |
| 5254 | for (mpco::element::ElementCollection::submap_type::iterator it1 = m_data->elements.items.begin(); |
| 5255 | it1 != m_data->elements.items.end(); ++it1) { |
| 5256 | mpco::element::ElementWithSameClassTagCollection &elem_by_tag = it1->second; |
| 5257 | /* |
| 5258 | loop over all element group-by-integration rule |
| 5259 | */ |
| 5260 | for (mpco::element::ElementWithSameClassTagCollection::submap_type::iterator it2 = elem_by_tag.items.begin(); |
| 5261 | it2 != elem_by_tag.items.end(); ++it2) { |
| 5262 | mpco::element::ElementWithSameIntRuleCollection &elem_by_rule = it2->second; |
| 5263 | /* |
| 5264 | loop over all element group-by-custom(or default) integration rule |
| 5265 | */ |
| 5266 | for (mpco::element::ElementWithSameIntRuleCollection::submap_type::iterator it3 = elem_by_rule.items.begin(); |
| 5267 | it3 != elem_by_rule.items.end(); ++it3) { |
| 5268 | mpco::element::ElementWithSameCustomIntRuleCollection &elem_by_custom_rule = it3->second; |
| 5269 | /* |
| 5270 | loop over all alements |
| 5271 | */ |
| 5272 | for (std::vector<Element*>::iterator it4 = elem_by_custom_rule.items.begin(); |
| 5273 | it4 != elem_by_custom_rule.items.end(); ++it4) { |
| 5274 | Element *elem = *it4; |
| 5275 | /* |
| 5276 | get the element response for the ith section and the ith fiber |
| 5277 | */ |
| 5278 | mpco::element::OutputDescriptor eo_descriptor; |
| 5279 | mpco::element::OutputDescriptorStream eo_stream(&eo_descriptor); |
| 5280 | Response *eo_response = elem->setResponse(argv, argc, eo_stream); |
nothing calls this directly
no test coverage detected