sorting mesh data an from abaqus simulation
Gabriel Genellina
gagsl-py2 at yahoo.com.ar
Thu Feb 5 12:16:12 EST 2009
En Mon, 02 Feb 2009 10:10:15 -0200, Alessandro Zivelonghi
<zasaconsulting at gmail.com> escribió:
> *Ntop = odb.rootAssembly.instances['PART-1-1'].nodeSets['TOP'].nodes
> *
> Problem:
> 1) the list of nodes Ntop contains all the node labels [2673, 2675,
> 2676, 2677, 2678, 3655, 3656, 119939, 124154, 127919] already
> ordered in ascending order.
> What I need is the same list *ordered by coordinate_x* of each node, i.e.
> from left to right in the model (unfortunately, for example node 124154
> cames before node 3656 in the model, if you read the model from left to
> right)
Use the key= argument to the sorted() builtin function
<http://docs.python.org/library/functions.html#sorted>
def get_node_x(node):
return node.coordinates[0]
sorted_nodes = sorted(Ntop, key=get_node_x)
(For a list of reasonable size, that's fine. For a giant list, this could
be written more efficiently, although less readable)
> 1b) I don't understand which kind of data are EL, N, Ntop (list?) and how
> can I sort Ntop with the criterium based on coordinate_x (coordinate[0])
AFAIK those are plain lists. You can try:
py> print type(Ntop)
and see what happens. If you don't get <type 'list'>, try with:
py> type(Ntop).mro()
to see the chain of base classes.
--
Gabriel Genellina
More information about the Python-list
mailing list