В ansys, получить массив всех номеров реальных свойств, используемых - PullRequest
1 голос
/ 25 ноября 2010

Используя ANSYS APDL, я ищу быстрый и недорогой способ получить все текущие действительные числа, используемые в модели. Что-то вроде

*vget,real_numbers...

Лучшее, что я могу придумать, это

! Get a list of all element types
*get,elemCount,elem,,count      
elemReals= $ *vget,elemReals,elem,,attr,real !Get list of elements real numbers

*get,maxReal,rcon,,num,max
realMask= $ *dim,realMask,array,maxReal
*vfill,realMask,data,0.0

!Create Mask Of Real Numbers and number of real of real numbers
realCount = 0
*do,i,1,elemCount,
   *if,realMask(elemReals(i)),eq,0,then
    realMask(elemReals(i)) = 1
    realCount = realCount + 1
 *endif
*enddo

!Fill out real number array
realNumbers = $ *dim,realNumbers,array,realCount
realIndex = 1
*do,i,1,maxReal,
 *if,realMask(i),eq,1,then
    realNumbers(realIndex) = i
    realIndex = realIndex + 1
 *endif
*enddo

Это работает, но если ваши действительные числа разнесены очень далеко друг от друга, это заканчивается циклом через нули в реальной маске ...

-Бен

Ответы [ 2 ]

1 голос
/ 13 июля 2015

Я полагаю, что уже немного поздно для ответа, но я бы попытался перебрать все константы REAL, как предлагает Настза, выбрать все элементы с этим реальным и вывести его в массив, если число> 0. Может или не можетБыстрее.Должен быть проверен.

*GET,mymaxvariable,RCON,0,NUM,MAX ! The maximum real constant set number defined
    *DO,i,1,mymaxvariable,1
      ESEL,NONE
      ESEL,S,REAL,,i        ! Select elements with current real number
      ecount = 0
      *GET,ecount,ELEM,  0, COUNT
      *IF,ecount,GT,0,then
      ! Process here, at this point, variable i is one of the real constant present (and activively used) in model
        /COM,real: %i%, elm. count: %ecount%
      *ENDIF
    *ENDDO

Потребовалось около 2 секунд на (довольно маленькой) модели с 2000 постоянными наборами.Если необходимо записать результаты в текстовый файл, я предлагаю сначала записать массив, а затем записать в файл все сразу, в противном случае скорость быстро уменьшается:)

0 голосов
/ 31 марта 2011
*GET,mymaxvariable,RCON,0,NUM,MAX ! The maximum real constant set number defined
*DO,i,1,mymaxvariable,1
  j=1
  *GET,myvariable,RCON,i,CONST,j  ! Value of real constant number "j" in set "i"
*ENDDO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...