Resistance *Structure::get_resistance_from_resistance_name(char *resistance_name) { Resistance *resist; if (strcmp(resistance_name,"") == 0) return NULL; resist = list_resistances.initialize(); for(; resist != NULL; resist = list_resistances.iterate() ) if (strcmp(resistance_name,resist->name()) == 0) return resist; return NULL; }
void Structure::connect_resistances_meshes() { Resistance *resist; List<Internal_Node> *list_int_nodes; Internal_Node *int_node_ptr; panel<double> *panel1_ptr, *panel2_ptr; long int mesh_number_Mps, mesh_number_Mrs; // precaution /* if (mesh_mats.Mp_ptr == NULL) { printf ("Errare humanum est: Structure::connect_resistances_meshes()\n"); exit (-1); } */ // get number of already existing meshes (in Mp); number of meshes in Mrs is 0; // mesh_number_Mps = (mesh_mats.Mps_ptr->get_n_lines()) + 1; mesh_number_Mps = (mesh_mats.Mps_ptr.numRow()) + 1; mesh_number_Mrs = 0+1; for (resist=list_resistances.initialize(); resist != NULL; resist=list_resistances.iterate() ) { // get panel connected to 1st node of this resistance if ((int_node_ptr = ((((resist->get_node(1))->real_node())-> get_list_internal_nodes())->initialize())) == NULL) { printf ("Error: Structure::connect_resistances_meshes() - nothing " "is connects to node %s of Resistance %s.\n", resist->node_name(1), resist->name() ); exit(-1); } if ((panel1_ptr = int_node_ptr->get_first_panel_ptr()) == NULL) { printf ("Error: Structure::connect_resistances_meshes() - no panels " "on this internal node ?\n"); exit(-1); } // get panel connected to 2nd node of this resistance if ((int_node_ptr = ((((resist->get_node(2))->real_node())-> get_list_internal_nodes())->initialize())) == NULL) { printf ("Error: Structure::connect_resistances_meshes() - nothing " "is connects to node %s of Resistance %s.\n", resist->node_name(2), resist->name() ); exit(-1); } if ((panel2_ptr = int_node_ptr->get_first_panel_ptr()) == NULL) { printf ("Error: Structure::connect_resistances_meshes() - no panels " "on this internal node ?\n"); exit(-1); } // add mesh in Mps and Mrs //mesh_mats.Mps_ptr->add_entry (0,mesh_number_Mps++, panel1_ptr, -1, panel2_ptr, 1, NULL); //mesh_mats.Mrs_ptr->add_entry (0, mesh_number_Mrs++, resist, 1, NULL); mesh_mats.Mps_ptr.resize_insertElement(mesh_number_Mps, panel1_ptr->get_number(), -1); mesh_mats.Mps_ptr.insertElement(mesh_number_Mps-1, panel2_ptr->get_number(), 1); mesh_number_Mps++; mesh_mats.Mrs_ptr.resize_insertElement(mesh_number_Mrs++, resist->get_number(),1); } }