    

 ## On this page

  

 

 # Extract Substructure 

 Last update: 16.07.2025 

Extracting substructures in SoS.

- reduced the FEM mesh to a selected set of nodes and elements (all element nodes must belong to the selected nodes)
- extract sub sets of node and element data objects and scalars
- store it in a new database to be saved.

-- 1st: based on selected nodes

-- get global node indices from a named selection

sel_nodes = sos.globalIndexFromNodeSet(sos.database(), "", "SOS_DATA_NODES") -- "" = part ident (or empty if no part-assembly structure), "SOS_DATA_NODES" = ident of named selection of type NODE

-- select adjacent elements

elements = sos.identifyElementsAdjacentToNodes(sos.database(), sel_nodes);

-- select all nodes belonging to the elements

adjacent_nodes = sos.identifyNodesOfElements(sos.database(), elements);

-- create the union of both nodes index sets (because there may be some nodes which do not have elements -&gt; then the nodes belonging to the selected elements will not contain these)

nodes = sos.indexUnion(sel_nodes, adjacent_nodes)

-- extract data and structure for the selected nodes and elements

node_based_sdb = sos.extractSubstructure(sos.database(), nodes, elements);



-- 2nd: based on selected elements

-- get global element indices from a named selection

elements = sos.globalIndexFromElementSet(sos.database(), "", "SOS_DATA_ELEMENTS") -- "" = part ident (or empty if no part-assembly structure), "SOS_DATA_ELEMENTS" = ident of named selection of type ELEMENT

-- select contained nodes

nodes = sos.identifyNodesOfElements(sos.database(), elements);

-- extract data and structure for the selected nodes and elements

element_based_sdb = sos.extractSubstructure(sos.database(), nodes, elements);





--[[

Export one of the databases to file:



local settings = sos.SaveDataBaseSettings( path__out .. "/test_pi_extract_substructure__node_based.sdb" );

settings.replace_files = true

sos.saveDataBase(node_based_sdb, settings);

]]