Округление всех элементов в FieldValueArray - PullRequest
0 голосов
/ 12 октября 2018

Нашел несколько ответов по этому поводу, но пока никто не работал.Я пытаюсь округлить все числа в моем FieldValueArray до 2 десятичных знаков.Это путь в Abaqus, который я использую, чтобы получить свои mises FieldValueArray.

topCenter=o1.rootAssembly.instances['PART-1-1'].elementSets['SET-1']
stress=session.odbs[path].steps['Step-1'].frames[-1].fieldOutputs['S']
area=stress.getSubset(region=topCenter,position=INTEGRATION_POINT,elementType='C3D20R')
mises= area.getScalarField(invariant=MISES)

Я попытался выполнить округление с помощью np.around, но ошибка выдает мне это сообщение.

import numpy as np
mises_round= np.around(mises,2)
File "C:\Abaqus\6.14-1\tools\SMApy\python2.7\lib\site-packages\numpy\core\fromnumeric.py", line 37, in _wrapit
result = getattr(asarray(obj),method)(*args, **kwds)
AttributeError: rint

Та же ошибка возникает для

mises_round= np.around(mises.values,2)

Спасибо за любые идеи !!

1 Ответ

0 голосов
/ 12 октября 2018

mises - это объект FieldOutput, а первый аргумент around должен быть объектом, похожим на массив.В FieldOutput вы получаете данные примерно так:

mises.values[i].data

Таким образом, даже mises.values не будет работать, потому что around не знает, как получить данные из атрибута data.Поэтому вам необходимо создать новый массив с данными:

mises_round = np.around([v.data for v in mises.values], 2)
...