| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Расчетные программы > ANSYS > Workbench CFX Remesh: как создать файл переразбиения сетки *.wbjn

Workbench CFX Remesh: как создать файл переразбиения сетки *.wbjn

Ответ
Поиск в этой теме
Непрочитано 27.12.2014, 10:32 #1
Workbench CFX Remesh: как создать файл переразбиения сетки *.wbjn
perebezhchik
 
Н.Новгород
Регистрация: 31.10.2013
Сообщений: 52

Здравствуйте.

Пытаюсь разобрать пример: http://www.edr.no/blogg/ansys_blogge...nch_cfx_remesh
Вроде, все разобрано, кроме ключевого момента - переразбиения сетки. А именно: подскажите, пожалуйста, как создать нужный файл *.wbjn

Спасибо.

Последний раз редактировалось perebezhchik, 27.12.2014 в 13:50.
Просмотров: 3611
 
Автор темы   Непрочитано 13.01.2015, 10:16
#2
perebezhchik


 
Регистрация: 31.10.2013
Н.Новгород
Сообщений: 52


Праздники закончились, вернулась к теме.
Возможно, кто-то сможет ответить на такой вопрос:
Внешняя команда, необходимая для переразбиения сетки, извлекает данные из решения (в моем случае измененную геометрию - повернутый ротор). Для этого извлечения команда использует приложение cfx5mondat.
Но я не могу найти информацию в хелпе об этом. Там сказано: "To obtain a complete list of available command line options for cfx5mondata type the following command into a UNIX terminal or a suitable Windows command line and press Return or Enter: cfx5mondata -help".
Подскажите, как это использовать (а точнее, куда вводить команду cfx5mondata -help).
perebezhchik вне форума  
 
Автор темы   Непрочитано 16.01.2015, 13:11
#3
perebezhchik


 
Регистрация: 31.10.2013
Н.Новгород
Сообщений: 52


Продолжаю выспрашивать помощь. Ну, правда, неужели никто с этим не сталкивался?

Поняла, что вопрос в посте №2 мог показаться невежественным, так как речь о командной строке (на ответ наткнулась случайно, очень сложно искать в хелпе "то, не знаешь что"). Мне не приходилось ею пользоваться, поэтому этот вопрос имел здесь место.

О задаче: сейчас меня интересует момент, который обозначен в теме.
"Как" создать файл *.wbjn я разобралась. Но при решении задачи, при переразбиении, возникает ошибка: "Parameter of name 'P1' not found in Project".
Так как я не вручную код писала, а программой протоколировались мои действия в проекте, полагаю, что дело даже не в коде, а в способе изменения параметра (я пыталась перебить значение самостоятельно, для теста хотя бы).
И в этом как раз вопрос!

Как связать расчетные данные, контролируемые в monitor point, с параметром геометрии? Так, чтобы параметр изменялся в соответствии с последней величиной, высчитанной решателем?
perebezhchik вне форума  
 
Непрочитано 17.01.2015, 16:15
#4
kristeen


 
Регистрация: 17.01.2015
Сообщений: 2


Привет!

Сам я с вопросом не разбирался, но когда-то находил скрипт от edr.no
Вот он:


Код:
[Выделить все]
import os
import string
import subprocess


################################################################################
# Get information from CCL file (WB project name)
################################################################################
f=open('ccl','r')
lines = f.readlines()
f.close

# Check for "Replacement Mesh File" in CCL
nl =0
allline = ''
for line in lines: 
  if (nl > 0):
    if (string.find(line,"=") == -1 and string.find(line,"END") == -1):
      allline += line
    else:   
      nl = 0
  if (string.find(line,"Replacement Mesh File =") != -1):
    allline += line
    nl += 1

# 
# Extract project name from replacement mesh file
projectfile = allline
projectfile = string.replace(projectfile," ","")
projectfile = string.replace(projectfile,'\\\n',"")
projectfile = string.replace(projectfile,'\n',"")
projectfile = string.replace(projectfile,'\\',"/")
projectfile = string.replace(projectfile,"ReplacementMeshFile=","")
projectfile = string.replace(projectfile,"_files/dp0/global/MECH/SYS.mshdb",".wbpj")

print "Project File: ", projectfile
print ""

################################################################################
# Extract monitor data from monfile
################################################################################
if (os.path.exists("res")):
  proc = subprocess.Popen(["cfx5mondata", "-res", "res", "-lastvaluesonly", "-varrule", "CATEGORY = USER POINT"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
else:
  print 'ERROR: Result file \"res\" does not exist'
  sys.exit(0)


# Extract monitor data of parameters defined as "ANSYS Paramter *"
monitorfile = proc.stdout.readlines()
monnames = string.split(string.replace(string.replace(''.join(monitorfile[0]),"USER POINT,",""),"\n",""),",")
mondata  = string.split(string.replace(monitorfile[1],"\n",""),",")

MonValue = {}
for name in monnames: 
    monname = string.replace(name,"\"","")
    MonValue[monname] = mondata[monnames.index(name)]

# Control output
for mon in MonValue:
  print "Monitor: ", mon
  print "  Value: ", MonValue[mon]

print ""

# Error check
if (len(MonValue) < 1):
  print "ERROR: No monitor data available for ANSYS remeshing (name = ANSYS Parameter *"
  sys.exit(0)
  

################################################################################
# Run Workbench script
################################################################################

# Open project file
SetScriptVersion(Version="13.0")
Open(FilePath=projectfile)

# Get parameter data
currentDP=Parameters.GetFirstDesignPoint()
dpProps=Parameters.GetEntityProperties(currentDP)
localParameters=dpProps['Parameters']


# Modify Workbench project

for param in localParameters:
  propParam=Parameters.GetEntityProperties(param)
  print "Parameter: ", propParam['DisplayText']
  print "  Expression: ", propParam['Expression']
  print "  Value:      ", propParam['Value']
  wbMon = propParam['DisplayText']

  for mon in MonValue:
# Update parameters having names found in CFX monitor data
    if (wbMon == mon):
      print "    Replaced by value: ", str(MonValue[mon])
      currentDP.SetParameterExpression(
        Parameter=param,
        Expression=str(MonValue[mon]))


# Update Geometry and Meshing 
system1 = GetSystem(Name="SYS")
component1 = system1.GetComponent(Name="Geometry")
component1.Update(AllDependencies=True)
component2 = system1.GetComponent(Name="Mesh")
component2.Update(AllDependencies=True)
Save(Overwrite=True)


Еще ссылки на подобные темы:
http://www.cae-club.ru/forum/external-command?page=1

http://forums.caenet.cn/showtopic-531496.aspx

Отпишитесь, как будет продвигаться изучение) Я тоже опробую технологию)
kristeen вне форума  
 
Непрочитано 17.01.2015, 16:19
#5
kristeen


 
Регистрация: 17.01.2015
Сообщений: 2


Привет!

Сам я с вопросом не разбирался, но когда-то находил скрипт от edr.no. Вот он:


Код:
[Выделить все]
import os
import string
import subprocess


################################################################################
# Get information from CCL file (WB project name)
################################################################################
f=open('ccl','r')
lines = f.readlines()
f.close

# Check for "Replacement Mesh File" in CCL
nl =0
allline = ''
for line in lines: 
  if (nl > 0):
    if (string.find(line,"=") == -1 and string.find(line,"END") == -1):
      allline += line
    else:   
      nl = 0
  if (string.find(line,"Replacement Mesh File =") != -1):
    allline += line
    nl += 1

# 
# Extract project name from replacement mesh file
projectfile = allline
projectfile = string.replace(projectfile," ","")
projectfile = string.replace(projectfile,'\\\n',"")
projectfile = string.replace(projectfile,'\n',"")
projectfile = string.replace(projectfile,'\\',"/")
projectfile = string.replace(projectfile,"ReplacementMeshFile=","")
projectfile = string.replace(projectfile,"_files/dp0/global/MECH/SYS.mshdb",".wbpj")

print "Project File: ", projectfile
print ""

################################################################################
# Extract monitor data from monfile
################################################################################
if (os.path.exists("res")):
  proc = subprocess.Popen(["cfx5mondata", "-res", "res", "-lastvaluesonly", "-varrule", "CATEGORY = USER POINT"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
else:
  print 'ERROR: Result file \"res\" does not exist'
  sys.exit(0)


# Extract monitor data of parameters defined as "ANSYS Paramter *"
monitorfile = proc.stdout.readlines()
monnames = string.split(string.replace(string.replace(''.join(monitorfile[0]),"USER POINT,",""),"\n",""),",")
mondata  = string.split(string.replace(monitorfile[1],"\n",""),",")

MonValue = {}
for name in monnames: 
    monname = string.replace(name,"\"","")
    MonValue[monname] = mondata[monnames.index(name)]

# Control output
for mon in MonValue:
  print "Monitor: ", mon
  print "  Value: ", MonValue[mon]

print ""

# Error check
if (len(MonValue) < 1):
  print "ERROR: No monitor data available for ANSYS remeshing (name = ANSYS Parameter *"
  sys.exit(0)
  

################################################################################
# Run Workbench script
################################################################################

# Open project file
SetScriptVersion(Version="13.0")
Open(FilePath=projectfile)

# Get parameter data
currentDP=Parameters.GetFirstDesignPoint()
dpProps=Parameters.GetEntityProperties(currentDP)
localParameters=dpProps['Parameters']


# Modify Workbench project

for param in localParameters:
  propParam=Parameters.GetEntityProperties(param)
  print "Parameter: ", propParam['DisplayText']
  print "  Expression: ", propParam['Expression']
  print "  Value:      ", propParam['Value']
  wbMon = propParam['DisplayText']

  for mon in MonValue:
# Update parameters having names found in CFX monitor data
    if (wbMon == mon):
      print "    Replaced by value: ", str(MonValue[mon])
      currentDP.SetParameterExpression(
        Parameter=param,
        Expression=str(MonValue[mon]))


# Update Geometry and Meshing 
system1 = GetSystem(Name="SYS")
component1 = system1.GetComponent(Name="Geometry")
component1.Update(AllDependencies=True)
component2 = system1.GetComponent(Name="Mesh")
component2.Update(AllDependencies=True)
Save(Overwrite=True)


Еще ссылки на подобные темы:
http://www.cae-club.ru/forum/external-command?page=1
http://forums.caenet.cn/showtopic-531496.aspx

Опишитесь о результатах) Тоже хочу эту технологию освоить)
kristeen вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Расчетные программы > ANSYS > Workbench CFX Remesh: как создать файл переразбиения сетки *.wbjn

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При создании подшивки пишет "Не удалось создать файл подшивки *.dst"!!! sergkovr AutoCAD 13 23.04.2018 15:41
Создать LISP для копирования фрагмента файла в новый файл a_tim LISP 8 29.08.2012 18:52
Как создать файл dxf с координатами сплайна? SnowWind Программирование 10 13.03.2012 00:37
как создать DWG файл из tif miks1969 Прочее. Программное обеспечение 2 12.05.2010 21:44
как создать файл arx из своих лиспов roman56 LISP 2 03.10.2008 06:12