Перед началом работы настоятельно рекомендуем ознакомиться с правилами форума.

Экспорт данных Particle Tracking

15 сообщений / 0 новое
Последняя публикация
Elizabeth
Аватар пользователя Elizabeth

Добрый день!

Помогите, пожалуйста, разобраться с проблемой:

Выполняется Steady State расчет в СFX (2 статора и 1 вращающийся регион). В поток запускаются 2 частицы (Solid Particles) со входа в канал. Проблема возникает при экспорте данных (Particle Traveling Distance от координаты Z) этих частиц в файл, а именно: при пересечении частицей границы между статором и ротором (92.6 мм), происходит обнуление координаты и начинается запись для второй частицы.

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

В прикреплении скриншот с описанием проблемы

Заранее спасибо за помощь!

ВложениеРазмер
Иконка изображения particle_tracks.png126.33 КБ
dvolkind
Аватар пользователя dvolkind

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

Я правильно понимаю, что он пишет в последовательности частица1-статор1 > частица 2-статор1 > частица1-ротор > частица2-ротор > частица1-статор2 > частица2-статор2 ? Если так, то проще всего файл с координатами обработать.

Elizabeth
Аватар пользователя Elizabeth

Добрый день!

частица 1 - статор1,
частици 2 - статор1-ротор
частица1 - ротор-статор2

частица2-статор2

 

Для нескольких частиц действительно так можно сделать, но планируется для задачи запускать до 200 таких частиц. Тут ручная обработка очень проблематична. 

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

dvolkind
Аватар пользователя dvolkind

Я вручную и не предлагал, можно скрипт сделать. Настроек, определябщих форматирование файла вывода, я не встречал. Думаю, что нужно на perl'е делать скрипт, который будет в particle track выводить по одной частице (вроде там был фильтр по ParticleID) и писать в файл. Могу помочь с этим.

Elizabeth
Аватар пользователя Elizabeth

Спасибо большое за совет!

В настройках, отвечающих за PT, можно выбирать отдельно интересующую частицу (Track Selection) и отдельно экспортировать для нее информацию. Возможно ли написание скрипта для файла сессии формата .cse, в котором будет меняться Track Selection в интересующем диапазоне, а результаты будут экспортироваться в тот один и тот же файл, где данные по частицам будут следовать друг за другом?

Прикрепляю архив с файлом .cse для своей задачи и картинку с Track Selection.

P.S. При переходе между статорами и ротором траектория частицы резко изламывается (на скриншоте это хорошо видно). В чем может быть проблема?
 

dvolkind
Аватар пользователя dvolkind

можно ещё модель для тестирования?

Elizabeth
Аватар пользователя Elizabeth

Конечно! Прикладываю проект

dvolkind
Аватар пользователя dvolkind

Прошу прощения, чуть не забыл. Попробуйте приведенный ниже код через Command Editor. Всё будет по умолчанию писаться в документы пользователя. При желании можно прописать директорию руками. Дополнительно можно дописать удаление строчек заголовка каждого трека (не знаю, нужно ли вам). Также можно это оформить в виде макроса с кнопочками, но по-моему оно того не стоит.

! use IO::Handle;
! my $nTracks = 3;
! my @fileNames = ();
! my $file_wildcard = "track*.csv";

! for(my $i=1; $i<=$nTracks; $i++){
DATA READER:
  CASE:Case domains
    RES PARTICLE TRACK:Res PT for RBC
      Activate Filter = On
      Track Selection = $i
    END
  END
END

EXPORT:
  Export File = track$i.csv
  Export Chart Name = Chart 1
  Overwrite = On
END
>export chart
!}
! @fileNames = glob ($file_wildcard);
! if (@fileNames){
!        while (my $filename = glob $file_wildcard){
!        my @fileBuffer = ();
!        open IN, "<$filename" or die $!;
!        while (my $line = <IN>){
!            push (@fileBuffer, $line);
!        }
!        close(IN);
!        open OUT, ">>tracks.csv" or die $!;
!        foreach (@fileBuffer) {print OUT "$_"}
!        @fileBuffer = ();
!        close(OUT);
!        }
!}
! unlink @fileNames;
 

dvolkind
Аватар пользователя dvolkind

Код криво вставился, это обещали поправить. Пока высылаю отдельным файлом.

Elizabeth
Аватар пользователя Elizabeth

Дмитрий, большое спасибо за ответ и потраченное на решение задачи время!

в CFD Post в Command Editor для Res PT for RBC заменил всё на код из файла. После запуска (Process) вылетела ошибка 

ERROR Invalid object name specified: 'Chart 1'.

В документах создался пустой файл tracks1.csv

Perl сейчас изучаю, поэтому it will take some time, чтобы полностью понять принцип работы скрипта

Elizabeth
Аватар пользователя Elizabeth

Добавлю, что никаких манипуляций с файлом сессии .cse не проводилось

Тема закрыта