@@ -78,6 +78,56 @@ def append_node_id(
7878 system .node_map [node_id2 ] = Node (node_id2 , vertex = point_2 )
7979
8080
81+ def remove_node_id (
82+ system : "SystemElements" ,
83+ node_id : int ,
84+ ) -> None :
85+ """Remove the node id from the system
86+
87+ Note that this function does NOT check if the node is still used in the system. It is
88+ intended to be used as a helper function to `remove_element()` and others, not to be
89+ used directly by users.
90+
91+ Args:
92+ system (SystemElements): System in which the node is located
93+ node_id (int): Node id of the node
94+ """
95+ node = system .node_map [node_id ]
96+ system ._vertices .pop (system .node_map [node_id ].vertex )
97+ system .node_map .pop (node_id )
98+ if node_id in system .loads_point :
99+ system .loads_point .pop (node_id )
100+ if node_id in system .loads_moment :
101+ system .loads_moment .pop (node_id )
102+ if node in system .supports_fixed :
103+ system .supports_fixed .remove (node )
104+ if node in system .supports_hinged :
105+ system .supports_hinged .remove (node )
106+ if node in system .supports_rotational :
107+ system .supports_rotational .remove (node )
108+ if node in system .internal_hinges :
109+ system .internal_hinges .remove (node )
110+ if node in system .supports_roll :
111+ ind = system .supports_roll .index (node )
112+ system .supports_roll .remove (node )
113+ system .supports_roll_direction .pop (ind )
114+ system .supports_roll_rotate .pop (ind )
115+ if node_id in system .inclined_roll :
116+ system .inclined_roll .pop (node_id )
117+ if node in [item [0 ] for item in system .supports_spring_x ]:
118+ ind = [item [0 ] for item in system .supports_spring_x ].index (node )
119+ system .supports_spring_x .pop (ind )
120+ if node in [item [0 ] for item in system .supports_spring_y ]:
121+ ind = [item [0 ] for item in system .supports_spring_y ].index (node )
122+ system .supports_spring_y .pop (ind )
123+ if node in [item [0 ] for item in system .supports_spring_z ]:
124+ ind = [item [0 ] for item in system .supports_spring_z ].index (node )
125+ system .supports_spring_z .pop (ind )
126+ if node_id in [item [0 ] for item in system .supports_spring_args ]:
127+ ind = [item [0 ] for item in system .supports_spring_args ].index (node_id )
128+ system .supports_spring_args .pop (ind )
129+
130+
81131def det_vertices (
82132 system : "SystemElements" ,
83133 location_list : Union [
0 commit comments