Mor_for_Ansys

26 views
Skip to first unread message

NeviD

unread,
Jan 29, 2008, 6:39:18 PM1/29/08
to matrixprogramming_ru
Здраствуйте Evgenii Rudnyi

вопрос персонально к вам по поводу вашей программы Mor_for_ansys1.83-
windows.
Моя задача получить матрицы в ансисе при структурном анализе и
проредуцировать модель.
Читал документацию и смотрел примеры,но всё равно при работе с ней
столкнулся с несколькими проблемами:

Макрос для ANSYS указанный в документации(mor4ansys-1.8.fm.pdf) при
структурном анализе получает в full и emat файлы только матрицу
жёсткости(stiffness).Я продумал два варианта получения матрицы
жёсткости(stiffness) и матрицы масс(mass) :
1 вариант:

finish
/solution
antype,substruc
seopt,mat,2,1 !будут расчитаны матрицы масс и жёсткости и записаны в
файл mat.sub
eqslv,sparse !решатель,при котором работает команда wrfull
nsubst, 1
wrfull, 1
ematwrite, yes
solve
finish

2 вариант
/prep7
cm,INTRFACE,node
m,all,all
nsel,all
finish
/solution
antype,modal !в результате модального анализа 1 формы будут
получены матрицы
modopt,lanb,1
cmsel,s,INTRFACE
nsel,all
solve
finish

Но ни в одном из вариантов не считается матрица вязкости(damping
matrix).В руководстве(mor4ansys-1.8.fm.pdf) прочитал,что она
необязательна и попробовал загрузить готовые emat и full файлы в
mor_for_ANSYS.
Итог - файлы читаются верно и матрицы масс и жёсткости
считываются,про матрицу вязкости пишется :Empty.Почти все решатели по
ходу решения выдают ошибку:Factoring is impossible :try another
solver. В итоге решатель TAUCSdlt с параметром metis решает без каких-
либо ошибок,но в итоге получаются матрицы размерностью 0.

Вопрос - возможно ли вообще редуцирование модели в
mor_for_ansys,если матрицы 2?
И известны ли вам методы получения матрицы вязкости при структурном
анализе в full файл?

***
если изменить параметры seopt в 1 варианте макроса(seopt,mat,
3,1) ,то будет рассчитываться и матрица вязкости и все матрицы будут
храниться в файле mat.sub,но с этими файлами не работает ваша
программа и в этой ситуации wrfull игнорируется,так как матрица
вязкости расчитывается другим решателем,а wrfull работает только при
sparse.

P.S. прошу извинить за длинное изложение проблемы.

Evgenii Rudnyi

unread,
Jan 30, 2008, 2:32:47 PM1/30/08
to matrixprog...@googlegroups.com
Добрый вечер,

> Макрос для ANSYS указанный в документации(mor4ansys-1.8.fm.pdf) при
> структурном анализе получает в full и emat файлы только матрицу
> жёсткости(stiffness).

Это не так. EMAT файл содержит как минимум две матрицы, если они
определены в модели. Сделайте так как написано, и посмотрите, что
получится. Если будут ошибки, пошлите листинг, который выдает MOR for
ANSYS в этом случае.

Вот есть один пример

http://www.imtek.uni-freiburg.de/simulation/mor4ansys/lab/resonator/

Он более сложный, чем нужно вам, но он показывает, что из EMAT файла
получаются все матрицы.

> antype,substruc
> seopt,mat,2,1 !будут расчитаны матрицы масс и жёсткости и записаны в
> файл mat.sub

Вы также здесь можете задать распечатку матриц в листинге ANSYS.

> antype,modal !в результате модального анализа 1 формы будут
> получены матрицы
> modopt,lanb,1

Я не особо экспериментировал с модальным анализом, поскольку это не
работает с термическими задачами.

> Но ни в одном из вариантов не считается матрица вязкости(damping
> matrix).

Это не совсем так. EMAТ содержит вязкость, если она определана на уровне
элемента. В случае BETAD и ALPHAD она действительно не записывается, но
в этом случае она на самом деле не нужна. Эти параметры можно будет
определить позже на уровне редуцированной модели.

> В руководстве(mor4ansys-1.8.fm.pdf) прочитал,что она
> необязательна и попробовал загрузить готовые emat и full файлы в
> mor_for_ANSYS.
> Итог - файлы читаются верно и матрицы масс и жёсткости
> считываются,про матрицу вязкости пишется :Empty.Почти все решатели по
> ходу решения выдают ошибку:Factoring is impossible :try another
> solver. В итоге решатель TAUCSdlt с параметром metis решает без каких-
> либо ошибок,но в итоге получаются матрицы размерностью 0.

Скорее всего у вас матрица жесткости вырождена. Попробуйте в ANSYS
решить стационарную задачу. Надо задать ограничения, чтобы не было
поступательных и вращательных движений тела.

> Вопрос - возможно ли вообще редуцирование модели в
> mor_for_ansys,если матрицы 2?

Да, конечно. Пришлите ваш сценарий в ANSYS, и я сделаю для вас пример.

> И известны ли вам методы получения матрицы вязкости при структурном
> анализе в full файл?

Да, я нашел одно более универсальное решение. Но лучше всего, если вы
пошлете пример. Вам, скорее всего, это будет не нужно.

> если изменить параметры seopt в 1 варианте макроса(seopt,mat,
> 3,1) ,то будет рассчитываться и матрица вязкости и все матрицы будут
> храниться в файле mat.sub,но с этими файлами не работает ваша
> программа и в этой ситуации wrfull игнорируется,так как матрица
> вязкости расчитывается другим решателем,а wrfull работает только при
> sparse.

Обратите внимание, что вы также можете использовать метод Guyan для
уменьшение размерности. Также можно mode superposition. Для чистой
структурной механики, это работает очень неплохо.

Евгений

P.S. Это несколько выходит за рамки этой группы, но мне кажется, что
трафик все равно не очень большой. Однако, если другие участники сочтут
это обсуждение для них не интересным, я могу для вас сделать группу
mor4ansys_ru.

LG

unread,
Jan 31, 2008, 6:17:24 AM1/31/08
to matrixprogramming_ru
Проблемы редуцирования задач примыкают к основной теме.
Использовать матрицы ANSYS приходилось, это полезная тема.
Отделяться не стоит.

NeviD

unread,
Jan 31, 2008, 5:31:41 PM1/31/08
to matrixprogramming_ru

Добрый вечер

> Вы также здесь можете задать распечатку матриц в листинге ANSYS.

Каким образом?

> Это не совсем так. EMAТ содержит вязкость, если она определана на уровне
> элемента. В случае BETAD и ALPHAD она действительно не записывается, но
> в этом случае она на самом деле не нужна. Эти параметры можно будет
> определить позже на уровне редуцированной модели.

Видимо это значит,что я должен,каким-то образом определить её на
уровне элемента?
Указания: damp,1,1000 - недостаточно?Я в модели указываю
nuxy,ex,dens,damp параметры.
И я проверял,если убрать dens или damp, то при макросе варианта 1 с
условием seopt,mat,3,1 - соответственно
обнуляются матрицы масс или вязкости(при наличии этих параметров -
всё есть).Но при любых других попытках
их посчитать - mor_for_ansys находит только 2 матрицы,да и при
листинге EMAT файла,в заголовке указано,что
матрица вязкости не считалась.Как раз никак не могу добиться
того,чтобы она считалась.

> Скорее всего у вас матрица жесткости вырождена. Попробуйте в ANSYS
> решить стационарную задачу. Надо задать ограничения, чтобы не было
> поступательных и вращательных движений тела.

Вот это вполне вероятно.То есть получается ограничения на всё?
d,all,all,0 !все связи во всех узлах запретить

> Да, конечно. Пришлите ваш сценарий в ANSYS, и я сделаю для вас пример.

Вообще моя задача - взять данные структурного анализа из ANSYS
проредуцировать модель и сконвертировать её для
русскоязычной программы Pradis.Причём нужно разбить модель на
конечные элементы в ANSYS,а прикладывать силы и тп в PRADIS.
Как и что делать после редуцирования я в теории знаю,весь затык
именно в редуцировании.
Я пытался сделать всё это на основе одного конечного элемента и на
основе пластины(у меня есть 3 версии ANSYS: 5.6,11,10.
Всё делаю в 10).

Пример с пластиной(допустим без вязкости):
/prep7
/UNITS,SI
antype,substruc
!*создание и разбиение пластины на кэ
L=0.15
B=0.05
rectng,0,L,0,B
et,1,PLANE82
keyopt,1,3,0
uimp,1,ex,,,2e11
uimp,1,nuxy,,,0.3
uimp,dens,,,7800
lsel,all
mshape,0,2D
mshkey,0
amesh,all
finish
Уже в этом примере если посмотреть List->Status->Global status можно
увидеть запись:
Active options for this analysis type:
Matrices to generate. . . . . . . .K only

NeviD

unread,
Jan 31, 2008, 5:57:09 PM1/31/08
to matrixprogramming_ru
Допустил ошибку при листинге макроса,должно быть так:
/prep7
/UNITS,SI
antype,substruc
!*создание и разбиение пластины на кэ
seopt,,2,0
L=0.15
B=0.05
rectng,0,L,0,B
et,1,PLANE82
keyopt,1,3,0
uimp,1,ex,,,2e11
uimp,1,nuxy,,,0.3
uimp,1,dens,,,7800
lsel,all
mshape,0,2D
mshkey,0
amesh,all
finish
в этом случае List->Status->Global status указывается, что K и M
рассчитываться будут.

Evgenii Rudnyi

unread,
Feb 2, 2008, 4:11:54 PM2/2/08
to matrixprog...@googlegroups.com
>> Вы также здесь можете задать распечатку матриц в листинге ANSYS.
>
> Каким образом?

Установите в SEOPT параметр SEPR=1

>> Это не совсем так. EMAТ содержит вязкость, если она определана на уровне
>> элемента. В случае BETAD и ALPHAD она действительно не записывается, но
>> в этом случае она на самом деле не нужна. Эти параметры можно будет
>> определить позже на уровне редуцированной модели.
>
> Видимо это значит,что я должен,каким-то образом определить её на
> уровне элемента?
> Указания: damp,1,1000 - недостаточно?Я в модели указываю
> nuxy,ex,dens,damp параметры.
> И я проверял,если убрать dens или damp, то при макросе варианта 1 с
> условием seopt,mat,3,1 - соответственно
> обнуляются матрицы масс или вязкости(при наличии этих параметров -
> всё есть).Но при любых других попытках
> их посчитать - mor_for_ansys находит только 2 матрицы,да и при
> листинге EMAT файла,в заголовке указано,что
> матрица вязкости не считалась.Как раз никак не могу добиться
> того,чтобы она считалась.

Вы наверное правы, при использовании DAMP в MP ANSYS может не записывать
это в элементные матрицы. Если вы посмотрите на уравнение 15-20 в
ANSYS Theory Reference (15.3. Damping Matrices), beta^m не включается в C_k.

Вам действительно нужно задавать beta разной для разных материалов? Или
ее значение одинаково и вам также подойдет команда BETAD?

> Вообще моя задача - взять данные структурного анализа из ANSYS
> проредуцировать модель и сконвертировать её для
> русскоязычной программы Pradis.Причём нужно разбить модель на
> конечные элементы в ANSYS,а прикладывать силы и тп в PRADIS.
> Как и что делать после редуцирования я в теории знаю,весь затык
> именно в редуцировании.

Несколько соображений по поводу вашей модели.

1) Я боюсь, что MOR for ANSYS несовместим с antype,substruc. Последнее -
это свой метод редукции, встроенный в ANSYS (Guyan reduction), и вы
можете использовать его независимо.

2) Алгоритм Арнольди, запрограммированный в MOR for ANSYS, предполагает,
что матрица жесткости невырождена и что задана нагрузка. Если вектор
нагрузки нулевой, то алгоритм сразу же останавливается. Здесь полезно
посмотреть на слайды 18-19 и 24

http://modelreduction.com/doc/teaching/eurosime/lecture1.pdf

Здесь приведен пример системы первого порядка, но это неважно. Важно,
что требуется определить входы и выходы. То есть, model reduction
зависит от входов. В этом отличие от Guyan reduction и mode superposition.

3) Для применения MOR for ANSYS к вашему примеру требуется задать
ограничения, скажем зафиксировать какую-нибудь сторону, и задать
нагрузку. Если это для вас неприемлимо, используйте Guyan reduction или
mode superposition. Я правда не уверен, что они будут функционировать с
вырожденной матрицей. Без нагрузки, это пожалуйста, а вот, что с ними
произойдет в случае вырожденной матрицы - это вопрос.

4) Я попробовал посмотреть про Pradis, чтобы понять вашу задачу, но, к
сожалению, www.lambda.ru недоступна. Похоже, что они не проплатили
провайдеру.

Таким образом, вначале вам надо понять, походит ли к вам требования
изложенные на слайдах выше. Теория, которая используется в MOR for
ANSYS, применяется к так называемым динамическим системам, где в
дополнении к системным матрицам определы матрицы входа и выхода.
Соответственно, когда есть только системные матрицы, теория не работает,
поскольку в этом случае нельзя определить передаточную функцию.

Евгений

NeviD

unread,
Feb 3, 2008, 12:59:11 PM2/3/08
to matrixprogramming_ru
Добрый вечер

Огромное спасибо за советы.Попробовал закреплять одну сторону пластины
и приклыдавать к незакреплённому узлу точку.
Наконец-то решает.Кстати решение получаю в substruc анализе.
/solu
antype,substruc
seopt,2,1
eqslv,sparse
nsubst,1
wrfull,1
ematwrite,yes
!закрепление стороны и приложение силы вручную

При попытке модального или статического анализа полученные файлы
почему-то не распознавались в mor_for_ansys
Писалась ошибка - неверный emat file или неверный full файл.
По поводу - подойдёт ли алгоритм mor_for_ansys пока думаю,возможно,всё-
таки придётся писать что-то самому или
использовать Guyan reduction и mode superposition
Вы случайно не знаете,как ими воспользоваться или где найти про это
инфу(в хелпе нашёл только математику редукции,но не то,как ей
воспользоваться)

>Вам действительно нужно задавать beta разной для разных материалов? Или
>ее значение одинаково и вам также подойдет команда BETAD?

пока передо мной не стоит какой-то конкретной задачи(с пластиной - это
для примера,важен сам факт получения и обработки данных на том конце в
PRADIS) это не важно и BETAD подходит.

Evgenii Rudnyi

unread,
Feb 3, 2008, 3:57:10 PM2/3/08
to matrixprog...@googlegroups.com
> Наконец-то решает.Кстати решение получаю в substruc анализе.
> /solu
> antype,substruc
> seopt,2,1
> eqslv,sparse
> nsubst,1
> wrfull,1
> ematwrite,yes
> !закрепление стороны и приложение силы вручную
>
> При попытке модального или статического анализа полученные файлы
> почему-то не распознавались в mor_for_ansys
> Писалась ошибка - неверный emat file или неверный full файл.

Я сделал файлы для вашей модели. Вы найдете их в разделе файлы

http://groups.google.com/group/matrixprogramming_ru/web/nevid.zip

Я не могу проверить MOR for ANSYS 1.83, поскольку у меня под рукой
только ANSYS 11, а он генерит такие FULL файлы, которые старая версия не
читает. Но просто запустите с ANSYS 10 (или более старой версией)
model.ans и затем matrices.old.ans. А затем уже MOR for ANSYS 1.83. Если
будут проблемы - пожалуйста, опишите их подробнее.

> По поводу - подойдёт ли алгоритм mor_for_ansys пока думаю,возможно,всё-
> таки придётся писать что-то самому или
> использовать Guyan reduction и mode superposition
> Вы случайно не знаете,как ими воспользоваться или где найти про это
> инфу(в хелпе нашёл только математику редукции,но не то,как ей
> воспользоваться)

В описании к ANSYS все есть. Запустите там поиск и вы все должны найти.
В nevid.zip есть примеры, как их использовать с вашей моделью и
результаты сравнения с MOR for ANSYS (см. README).

Здесь так. MOR for ANSYS дает более точные результаты, причем сама
процедура редуцирования быстрее. Однако, результаты зависят от вектора
нагрузки (но можно использовать несколько нагрузок/входов)

>> Вам действительно нужно задавать beta разной для разных материалов? Или
>> ее значение одинаково и вам также подойдет команда BETAD?
>
> пока передо мной не стоит какой-то конкретной задачи(с пластиной - это
> для примера,важен сам факт получения и обработки данных на том конце в
> PRADIS) это не важно и BETAD подходит.

В случае proportional damping (ALPHAD и BETAD), матрица вязкости не
добавляет новой информации, поэтому эти параметры просто можно задать на
уровне редуцированной модели, как это, к слову сказать, и делается в
ANSYS для Guyan reduction и mode superposition. Теория для MOR for ANSYS
в этом случае представлена в

R. Eid, B. Salimbahrami, B. Lohmann, E. B. Rudnyi, J. G. Korvink.
Parametric Order Reduction of Proportionally Damped Second-Order
Systems. Sensors and Materials, v. 19, N 3, p. 149-164, 2007.

http://www.myu-inc.jp/myukk/S&M/archives/S&M19.html#No.3
Препринт http://www.rt.mw.tum.de/TRAC/TRAC1-1-EID.pdf

vl

unread,
Feb 4, 2008, 3:51:40 AM2/4/08
to matrixprogramming_ru


On 3 фев, 00:11, Evgenii Rudnyi <use...@rudnyi.ru> wrote:
>
> 2) Алгоритм Арнольди, запрограммированный в MOR for ANSYS, предполагает,
> что матрица жесткости невырождена и что задана нагрузка. Если вектор
> нагрузки нулевой, то алгоритм сразу же останавливается.
> Здесь приведен пример системы первого порядка, но это неважно. Важно,
> что требуется определить входы и выходы. То есть, model reduction
> зависит от входов. В этом отличие от Guyan reduction и mode superposition.
>
Как я понимаю, задача MOR for Ansys - решить ту же самую задачу, что и
задана в Ансисе.
Но если в задаче определены входы и выходы (а они должны быть
определены даже в задаче NeviDa), то вопрос: влияют ли значения
нагрузки на входе на матрицу А? Если нет, то можно задать любое
значение нагрузки, получить матрицу А (а для 2-го порядка и другие
матрицы) и использовать их по усмотрению NeviD, правильно?

Evgenii Rudnyi

unread,
Feb 4, 2008, 3:01:01 PM2/4/08
to matrixprog...@googlegroups.com
> On 3 фев, 00:11, Evgenii Rudnyi <use...@rudnyi.ru> wrote:
>> 2) Алгоритм Арнольди, запрограммированный в MOR for ANSYS, предполагает,
>> что матрица жесткости невырождена и что задана нагрузка. Если вектор
>> нагрузки нулевой, то алгоритм сразу же останавливается.
>> Здесь приведен пример системы первого порядка, но это неважно. Важно,
>> что требуется определить входы и выходы. То есть, model reduction
>> зависит от входов. В этом отличие от Guyan reduction и mode superposition.
>>
> Как я понимаю, задача MOR for Ansys - решить ту же самую задачу, что и
> задана в Ансисе.

Задача MOR for ANSYS упростить задачу, то есть аппроксимировать исходную
динамическую систему аналогичной системой, но меньшей размерности.
Последующий расчет происходит уже вне MOR for ANSYS. Программа просто
читает большие матрицы из бинарных файлов ANSYS, находит подпространство
небольшой размерности, проецирует на него исходные матрицы и затем
записывает их в формате Matrix Market.

> Но если в задаче определены входы и выходы (а они должны быть
> определены даже в задаче NeviDa), то вопрос: влияют ли значения
> нагрузки на входе на матрицу А? Если нет, то можно задать любое
> значение нагрузки, получить матрицу А (а для 2-го порядка и другие
> матрицы) и использовать их по усмотрению NeviD, правильно?

Вы все правильно понимаете. На языке динамической системы награзка
разбивается на постоянный вектор и входную фукнцию

f(t) = bu(t)

Последняя не участвует в процессе редукции, а просто переносится без
всякого изменения. Входных функций может быть даже несколько. Однако они
привязаны к матрице входа. Это означает, что если в дальнейшем
потребуется определить новую линейно независимую нагрузку (скажем, силу
на другую ноду), то это уже нельзя будет сделать на уровне редуцируемой
модели. Процесс редуцирования придется повторить.

Посмотрите на слайд 24

http://modelreduction.com/doc/teaching/eurosime/lecture1.pdf

Там это идея выражена графически.

NeviD

unread,
Feb 18, 2008, 3:27:08 PM2/18/08
to matrixprogramming_ru
Здраствуйте, Евгений
Огромное спасибо за предыдущие ответы - очень помогли.

Ещё один вопрос:
mor_for_ansys пишет матрицы в формат MatrixMarket причём у меня по
умолчанию он всегда почему-то пишет их в форме symmetric array.
Так как я их потом вручную считываю - не самая удобная форма.Хотел
спросить - возможно ли настроить mor_for_ansys на вывод в другой
формат MM.Например просто array или сoord.

Если нет,знаете ли вы,как записывается array symmetric?
Например для матрицы:
2 3 5 6
3 4 3 1
5 3 8 9
6 1 9 7
в MM array symmetric - будет так(?):
2
3
5
6
4
3
1
8
9
7

Evgenii Rudnyi

unread,
Feb 18, 2008, 3:59:05 PM2/18/08
to matrixprog...@googlegroups.com
> mor_for_ansys пишет матрицы в формат MatrixMarket причём у меня по
> умолчанию он всегда почему-то пишет их в форме symmetric array.

Матрица симметричная, поэтому это так и происходит. Выберите UMFPACK как
solver, тогда матрицы будут преобразованы к обычным - ни и считаться
будет дольше.

> Так как я их потом вручную считываю - не самая удобная форма.Хотел
> спросить - возможно ли настроить mor_for_ansys на вывод в другой
> формат MM.Например просто array или сoord.

У меня в новой версии есть возможность записать матрицы в виде таблицы,
это я сделал для Caspoc. Но чтобы это сделать в старой версии, надо
поменять код.

Более простое решение для вас - воспользуйтесь SciPy. Там есть функция
для чтения MatrixMarket и записи в виде таблицы. Скажем

matA = scipy.io.mmread('mor.A')
scipy.io.write_array('matrix.A', matA, precision=16)


> Если нет,знаете ли вы,как записывается array symmetric?
> Например для матрицы:
> 2 3 5 6
> 3 4 3 1
> 5 3 8 9
> 6 1 9 7
> в MM array symmetric - будет так(?):
> 2
> 3
> 5
> 6
> 4
> 3
> 1
> 8
> 9
> 7

Вот, что говорит формат

Symmetric Square matrix with aij = aji. Only entries on or below the
matrix diagonal are provided in the le. The entries above the main
diagonal are known by symmetry.

The entries are listed in column-major order.

То есть, как вы и написали.

NeviD

unread,
Apr 18, 2008, 10:56:24 AM4/18/08
to matrixprogramming_ru
Снова,Здраствуйте Евгений.

Появилось снова несколько вопросов по поводу Mor_for_ansys:

1.Во-первых,хотелось бы узанть подробнее про вот такую ситуацию:
Решаю задачу с прутом в Ансисе с 3-мя разными показателями модуля
упругости: 2e10,2e11,2e12,для тестирования результатов,а после этого
редуцирую мором со значением размерности выходных матриц по
умолчанию(30 по-моему он автоматически ставит)
Исходники из Ансиса были размерности 36,после редуцирования же
получилось:
В первом случае 14
Во втором 13
В третьем 6
Причём,если пытаться вручную насильно задать большую выходную
размерность мор пересчитывает всё всё равно в (14,13,6
соответственно).
В связи с чем это связано?

2.как говорил выше - моя задача изначальная была - получение матриц из
ансиса,потом редуцирование их каким-либо методом,потом предоставление
редуцированных матриц в Pradis и решение той же задачи,что и в
Ансисе.В результате - сравнение результатов.
Так вот вся работа была проделана и перепроверена и у меня получаются
например вот такие расхождения серьёзные:
ANSYS:0,0053
Pradis:0,0031
Почти в два раза.
При этом при редуцировании я задаю только файлы full и emat с помощью
ключа -f
Может быть стоит как-то указать,к какому узлу приложена сила?
Задача у меня простая: прут,правый край которого зацементирован,а к
верхнему углу левого приложена сила.

Evgenii Rudnyi

unread,
Apr 19, 2008, 2:55:25 AM4/19/08
to matrixprog...@googlegroups.com
> Появилось снова несколько вопросов по поводу Mor_for_ansys:
>
> 1.Во-первых,хотелось бы узанть подробнее про вот такую ситуацию:
> Решаю задачу с прутом в Ансисе с 3-мя разными показателями модуля
> упругости: 2e10,2e11,2e12,для тестирования результатов,а после этого
> редуцирую мором со значением размерности выходных матриц по
> умолчанию(30 по-моему он автоматически ставит)
> Исходники из Ансиса были размерности 36,после редуцирования же
> получилось:
> В первом случае 14
> Во втором 13
> В третьем 6
> Причём,если пытаться вручную насильно задать большую выходную
> размерность мор пересчитывает всё всё равно в (14,13,6
> соответственно).
> В связи с чем это связано?

Когда норма очередного вектора слишком маленькая (по умолчанию 1е-12),
он считается равным нулю и процесс останавливается - происходит так
называемая deflation. Можно изменить эту величину с помощью флага -t
1e-18 например, тогда вы получите еще вектора.

> 2.как говорил выше - моя задача изначальная была - получение матриц из
> ансиса,потом редуцирование их каким-либо методом,потом предоставление
> редуцированных матриц в Pradis и решение той же задачи,что и в
> Ансисе.В результате - сравнение результатов.
> Так вот вся работа была проделана и перепроверена и у меня получаются
> например вот такие расхождения серьёзные:
> ANSYS:0,0053
> Pradis:0,0031
> Почти в два раза.
> При этом при редуцировании я задаю только файлы full и emat с помощью
> ключа -f
> Может быть стоит как-то указать,к какому узлу приложена сила?
> Задача у меня простая: прут,правый край которого зацементирован,а к
> верхнему углу левого приложена сила.

Сила указывается в векторе нагрузке. Соответственно, вектор нагрузки уже
поменять нельзя, его можно только масштабировать при умножении на
некоторую скалярную функцию.

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

NeviD

unread,
Apr 19, 2008, 7:10:24 AM4/19/08
to matrixprogramming_ru

> Сила указывается в векторе нагрузке. Соответственно, вектор нагрузки уже
> поменять нельзя, его можно только масштабировать при умножении на
> некоторую скалярную функцию.
>
> Посмотрите на пример, который я для вас сделал. Там ведь все
> согласуется. Помните, что полученные матрицы применимы только с той
> нагрузкой, которая была использована.- Скрыть цитируемый текст -
>
> - Показать цитируемый текст -

То есть входы мор автоматически указывает.То есть их задавать не надо
в опциях мор?

Там ещё есть настройка -C outdofs.txt для указания выходов.Вы не могли
бы объяснить как её использовать?
То есть,например,если выходом будет 5 узел,как должен выглядеть файл
outdofs.txt?

Evgenii Rudnyi

unread,
Apr 19, 2008, 8:39:32 AM4/19/08
to matrixprog...@googlegroups.com
>> Сила указывается в векторе нагрузке. Соответственно, вектор нагрузки уже
>> поменять нельзя, его можно только масштабировать при умножении на
>> некоторую скалярную функцию.
>>
>> Посмотрите на пример, который я для вас сделал. Там ведь все
>> согласуется. Помните, что полученные матрицы применимы только с той
>> нагрузкой, которая была использована.
> То есть входы мор автоматически указывает.То есть их задавать не надо
> в опциях мор?

Вы определяете в ANSYS вектор нагрузки. Это и определяет матрицу входов.
Больше ничего задавать не надо.

> Там ещё есть настройка -C outdofs.txt для указания выходов.Вы не могли
> бы объяснить как её использовать?
> То есть,например,если выходом будет 5 узел,как должен выглядеть файл
> outdofs.txt?

Одна строка для одной степени свободы, например

name UX 3

где name - это просто имя (без пробелов), UX - степень свободы, 3 -
номер ноды, например по команде в ANSYS node(x, y, z).

Можно задать сколько угодно строк. -f определяет все степени свободы как
выходы.

Я бы посоветовал взглянуть на слайд 24 в

http://modelreduction.com/doc/teaching/eurosime/lecture1.pdf

Там показывается, как должна использоваться уменьшенная модель.

NeviD

unread,
Apr 22, 2008, 5:37:58 AM4/22/08
to matrixprogramming_ru
И снова,здраствуйте и снова вопрос.
Пробую разобраться с присланным вами примером.Например,для Guyan
метода.
запускаю последовательно model.ans guyan.ans и в итоге получаются
fileguyan.full и filguyan.emat, из которых совсем никак не могу
получить матрицы: ANSYS выдаёт ошибку при листинге бинарного файла и
вообще вылетает,а dumpmatrices выдаёт ошибку: Superelement is set. что-
то такое.Не подскажете,как получить из всего этого процесса
необходимые мне матрицы(жёсткости масс)?

Evgenii Rudnyi

unread,
Apr 22, 2008, 12:35:46 PM4/22/08
to matrixprog...@googlegroups.com

MOR for ANSYS не использует эти файлы, он использует матрицы полученные
из matrices.ans. Если вы хотите получить матрицы после Guyan reduction,
надо просто указать в команде, что вы хотите их распечатать. В команде
seopt надо для этого установить какой-то флаг - посмотрите в описании
команд ANSYS.

NeviD

unread,
Apr 23, 2008, 4:28:58 AM4/23/08
to matrixprogramming_ru
Спасибо.Так и значит насколько я понял если сразу после этих макросов
использовать matrices.ans я в файлы full и emat получу не
редуцированные матрицы?

Evgenii Rudnyi

unread,
Apr 23, 2008, 6:11:50 AM4/23/08
to matrixprog...@googlegroups.com
> Спасибо.Так и значит насколько я понял если сразу после этих макросов
> использовать matrices.ans я в файлы full и emat получу не
> редуцированные матрицы?

Правильно. Вам нужно запустить model.ans и затем matrices.old.ans. Это
даст вам исходные матрицы, которые можно использовать с MOR for ANSYS
1.83. Сценарий guyan.ans - это использование Guyan reduction для
сравнения. Аналгично modal.ans - это проведение mode superposition для
сравнения.

NeviD

unread,
Apr 23, 2008, 9:05:55 AM4/23/08
to matrixprogramming_ru
А что пишется с помощью writeres.ans?

Evgenii Rudnyi

unread,
Apr 23, 2008, 4:48:56 PM4/23/08
to matrixprog...@googlegroups.com
NeviD schrieb:

>>> Спасибо.Так и значит насколько я понял если сразу после этих макросов
>>> использовать matrices.ans я в файлы full и emat получу не
>>> редуцированные матрицы?
>> Правильно. Вам нужно запустить model.ans и затем matrices.old.ans. Это
>> даст вам исходные матрицы, которые можно использовать с MOR for ANSYS
>> 1.83. Сценарий guyan.ans - это использование Guyan reduction для
>> сравнения. Аналгично modal.ans - это проведение mode superposition для
>> сравнения.
>
> А что пишется с помощью writeres.ans?

Этот скрипт вызывается из freq.ans, guyan.ans и modal.ans. Он записывает
результаты гармонического анализа из ANSYS в текстовой файл. Эти
текстовые файлы дальше используются в plots.py для сравнения с
результатами, полученными из уменьшеной модели.

Reply all
Reply to author
Forward
0 new messages