MCPcopy Create free account
hub / github.com/OpenSees/OpenSees / writeModelLocalAxes

Method writeModelLocalAxes

SRC/recorder/MPCORecorder.cpp:5223–5353  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5221}
5222
5223int 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);

Callers

nothing calls this directly

Calls 15

quatFromMatFunction · 0.85
createAndWriteFunction · 0.85
closeFunction · 0.85
push_backMethod · 0.80
stopMethod · 0.80
createFunction · 0.70
startMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
setResponseMethod · 0.45
getResponseMethod · 0.45
getDataMethod · 0.45

Tested by

no test coverage detected