Перейти к публикации

Смерть элементов и рестарт


Форумный боец

Рекомендованные сообщения

Форумный боец

здравствуйте!

хочу сделать фулл трансиент анализ со смертью элементов после каждого шага интегрирования. но как известно при рестарте "команды ekill и ealive не сохраняются" ("The .Rnnn file does not save the EKILL and EALIVE commands. If EKILL or EALIVE commands are required in the restarted session, you must reissue these commands." :dry: )

короче надо выполнить примерно следующий макрос :g: :

finish

/SOLU

nropt,full,,on

nsubst,10,0,0

time,0.01

solve

*do,i,1,10,1

/solu

NSUBST,1,0,0

TIME,0.01+0.00002*i

SOLVE

/post1

SET,last

ETABLE,STRESS,S,EQV

ESEL,S,ETAB,STRESS,241e6

/solu

antype,,rest,i+1,1

ekill,all

esel,all

*enddo

finish

но как я уже сказал, после рестарта ekill уже не действует и эффекта от нее нет, т.е. получается обычный трансиент. :wallbash:

знающие люди, подскажите пожалуйста, как передать информацию о выбранных (для смерти) элементах в "после рестарта"?

заранее всем спасибо :smile:

Изменено пользователем Форумный боец
Ссылка на сообщение
Поделиться на других сайтах


Форумный боец

МОжет быть поробывать создать свой компонент?

возможно. а что это означает? :surrender:
Ссылка на сообщение
Поделиться на других сайтах

Реально элементы не удаляються, а просто исключаются из расчета, так что главное сохранить их выделение. Смотри в меню Select->Comp/Assem->Create Component. Можно как раз создать компанент из элементов. Для макорса, мо-моему это команда cm. Выделить компонент помоему cmsel.

Ссылка на сообщение
Поделиться на других сайтах
Форумный боец

Смотри в меню Select->Comp/Assem->Create Component. Можно как раз создать компанент из элементов

спасибо, посмотрю :)
Ссылка на сообщение
Поделиться на других сайтах
Форумный боец

способ с созданием компонента не прошел - после рестарта компонент исчезает :( надо как-то по-другому

Ссылка на сообщение
Поделиться на других сайтах

Ну не знаю, может быть поробывать создать свой массив с номареами элементо, потом их перебрать. Вообще, рестарт, это такая глобальная команда. Может юыть ее исключить?

Ссылка на сообщение
Поделиться на других сайтах
Форумный боец

Может юыть ее исключить?

трансиент без рестарта работать не будет - ic не передадутся... я предполагаю, что можно/нужно выбранные элементы (номера или еще какие-то атрибуты) в файл записать, а после рестарта считать, но пока изучение хелпа по этому вопросу не принесло эффекта.
Ссылка на сообщение
Поделиться на других сайтах

ДА, кстати в файл. Это идея. В обычный текстовой. И они оттуда никуда не денутся. Но как жто сделать?... Не знаю. Найдешь способ, напиши..

Ссылка на сообщение
Поделиться на других сайтах
Форумный боец

собственно пока это и составляет главную проблемму :)

Ссылка на сообщение
Поделиться на других сайтах

Так в чем проблема? В ансисе есть команды *cfopen, *cfclose для открытия и закрытия файла. *vwrite, *vread для записи/чтения данных массива в открытый файл и команды parres и parsav для чтения и сохранения скалярных данных. Изучите синтаксис в хелпе и перед рестартом сохраните в файл номера нужных элементов, а после рестарта считайте их.

Ссылка на сообщение
Поделиться на других сайтах
Форумный боец

Так в чем проблема? В ансисе есть команды *cfopen, *cfclose для открытия и закрытия файла. *vwrite, *vread для записи/чтения данных массива в открытый файл и команды parres и parsav для чтения и сохранения скалярных данных. Изучите синтаксис в хелпе и перед рестартом сохраните в файл номера нужных элементов, а после рестарта считайте их.

<{POST_SNAPBACK}>

именно до этих команд я и дошел, читая хелп. вот что получилось:

finish

/SOLU

nropt,full,,on

nsubst,10,0,0

time,0.01

solve

*do,i,1,1,1 !ну тут вообще-то не 1 раз повторяется, а побольше

/solu

NSUBST,1,1,1

TIME,0.01+0.00002*i

SOLVE

/post1

SET,last

ETABLE,STRESS,S,EQV

ESEL,S,ETAB,STRESS,240e6

*dim,vibor,array,1714

*do,j,1,1714,1

*get,gg,elem,j,esel

vibor(j)=gg

*enddo

*cfopen,fvibor,log

vwrite,vibor(1)

(f6.0)

*cfclos

/solu

antype,,rest,i+1,1

*dim,rvibor,array,1714

*vread,rvibor(1),fvibor,log

(f6.0)

*do,k,1,1714,1

*if,rvibor(k),eq,1,then

esel,a,elem,,k

*endif

*enddo

ekill,all

esel,all

*enddo

finish

правда пока не работает как надо. еще не понял почему. может какие-то ошибки?

Изменено пользователем Форумный боец
Ссылка на сообщение
Поделиться на других сайтах
Форумный боец

кажется заработало!

вместо

*cfopen,..

vwrite,..

(f6.0)

*cfclos

сделал *mwrite,..

да и раньше, когда выбирал элементы для смерти esel,a,elem,,k

то делал это к уже выбранным элементам... т.е. к всем! ну и на первом же шагу всех их убивал :lol:

правда странно, что не получается выбрать живые элементы и строить поля на них... %)

Изменено пользователем Форумный боец
Ссылка на сообщение
Поделиться на других сайтах
Форумный боец

новая проблемма:

Error: negative jakobian 2D

появляется на том шаге, на котором первый раз появляются "мертвые" элементы.

Ссылка на сообщение
Поделиться на других сайтах
  • 5 месяцев спустя...

Ребята, а может кто-нибудь предоставить рабочий фрагмент программы? А то у меня ну никак не получается убивать элементы при рестарте. Я уже :wallbash: с этим больше месяца. Буду очень признателен за помощь.

Ссылка на сообщение
Поделиться на других сайтах

а может кто-нибудь предоставить рабочий фрагмент программы

в 12 посте
Ссылка на сообщение
Поделиться на других сайтах

Уважаемый, Форумный боец!

Большущее спасибо за помощь. Вроде все работает. Но все же есть некоторые проблемы.

Во время выполнения программы появляется сообщение "(F6.0) is not a recognized POST1 command. This command will be ignored". Пользуюсь Ansys v.9.0.

После выполнения программы, при просмотре результатов с помощью Results Viewer такое впечатление как-будто после рестарта данные отсутствуют (возможно причиной является именно игнорирование (F6.0)?).

<noindex>Рисунок</noindex>

Изображение

Текст моей програмульки (может здесь какие-нибудь ошибочки???):

/SOLU

NROPT,full,,on

Nsubst,10,0,0

time,1

FLST,2,1,4,ORDE,1

FITEM,2,4

!*

/GO

DL,P51X, ,UY,0

FLST,2,1,4,ORDE,1

FITEM,2,2

/GO

!*

SFL,P51X,PRES,-200,

! /STATUS,SOLU

SOLVE

*do,i,1,5,1

/post1

set,last

etable,stress,s,y

esel,s,mat,,2 !выбор упругих включений в модели

esel,r,etab,stress,895,,,1 !выбор из них тех, которые больше критических нормальных напряжений

*dim,vibor,array,7253

*do,j,1,7253,1

*get,gg,elem,j,esel

vibor(j)=gg

*enddo

*mwrite,vibor(1),fvibor,log

(f6.0)

/SOLU

antype,,rest

*dim,rvibor,array,7253

*vread,rvibor(1),fvibor,log

(f6.0)

esel,u,all

*do,k,1,7253,1

*if,rvibor(k),eq,1,then

esel,a,elem,,k

*endif

*enddo

time,(2*i)

FLST,2,1,4,ORDE,1

FITEM,2,4

!*

/GO

DL,P51X, ,UY,0

FLST,2,1,4,ORDE,1

FITEM,2,2

/GO

!*

SFL,P51X,PRES,-250+5*i,

ekill,all

esel,all

! /STATUS,SOLU

SOLVE

*enddo

finish

Программа тестовая и в принципе только предназначена для отладки :)

Буду очень признателен за помощь!

Ссылка на сообщение
Поделиться на других сайтах

Радует меня позиция , Форумного бойца.

Из за того что по каким то причиинам не хочет разобраться с проблемой,

решает её ну такими путями - что путь через пятую точку покажется

самым прямым. Для страждующих, а также для повышения квалификации

товарища Форумного бойца, привожу цитату из хелпа :Restarting an Analysis

"The following files are necessary to do a multiframe restart:

Jobname.RDB - This is an ANSYS database file saved automatically at the first iteration of the first load step, first substep of a job. This file provides a complete description of the solution with all initial conditions, and will remain unchanged regardless of how many restarts are done for a particular job. When running a job, you should input all information needed for the solution - including parameters (APDL), components, and mandatory solution setup information - before you issue the first SOLVE. If you do not specify parameters before issuing the first SOLVE command, the parameters will not be saved in the .RDB file. In this case, you must use PARSAV before you begin the solution and PARRES during the restart to save and restore the parameters. If the information stored in the .RDB file is not sufficient to perform the restart, you must input the additional information in the restart session before issuing the SOLVE command. "

Ссылка на сообщение
Поделиться на других сайтах

Из за того что по каким то причиинам не хочет разобраться с проблемой,

с какой проблемой? я со всеми проблемами по тематике этого топика разобрался примерно пол года назад. а сейчас я предложил tarcos'у то что, с вашего позволения, разработал :)

насчет "пути через ж" тоже непонятно что не так - записал данные в файл, сделал рестарт, прочитал данные из файла. куда уж прямее?

как приведенная цитата из хелпа (я это место читал и сам неоднократно) относится к свежим вопросам tarcos'а или же к моим старым вопросам мне не понятно.

Ссылка на сообщение
Поделиться на других сайтах

то что вы разработали и есть путь именно через это

а вот что написано в хелпе

/solu

antype,4

.....

solve

/post1

....

parsave,all,1,txt

/solu

antype,,rest

parres,new,1,txt

...

solve

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...