Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> От однородного поля к неоднородному, E=const->E(x,y,z) 
:(
    Опции темы
SvetlanaS
Дата 16.4.2013, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.4.2013

Репутация: нет
Всего: нет



Есть программа, написанная для случая, когда электрическое поле - константа по всей камере. Я смоделировала неоднородное поле, которое представляется в виде файла с данными : (x,y,z,Е). Сама программа описывает трекинг частиц в камере и конечную поляризацию. Нужно понять, как повлияет изменение конфигурации поля на конечный результат. Благодарю за любую помощь! 
PM MAIL   Вверх
math64
Дата 16.4.2013, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 12
Всего: 72



E - это вектор, так что должны быть Ex, Ey, Ez. Или это производная от напряжённости электрического поля.
Данные из файла грузить в массив:
Код

struct Vector3D { double x, y, z; };
Vector3D E[SizeX][SizeY][SizeZ];

Как переделывать - зависит от того, как сделана оригинальная задача.
Можно, например, камеру разбить на SizeX*SizeY*SizeZ кубиков и считать что в каждом кубике поле постоянно и применять для него старую
программу.


Это сообщение отредактировал(а) math64 - 16.4.2013, 12:56
PM   Вверх
SvetlanaS
Дата 16.4.2013, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.4.2013

Репутация: нет
Всего: нет



Я уже на выходе векторы (Ex,Ey;Ez)  перевожу в угловое распределение :
  x                      y                        z                        (alpha)[°]         
                 
1.0600512E-5             -0.26                    0.03                     11.823385960146522       
1.0600512E-5             -0.26                    0.031                    10.39239954987032        
1.0600512E-5             -0.26                    0.032                    6.401619076676373        
1.0600512E-5             -0.26                    0.033                    5.970332639677054        
1.0600512E-5             -0.26                    0.034                    5.566954500788649        
----------------------------------------------------------------------------------------------------
Мне нужно, чтобы программа читала файл с данными о поле, например, выведу сразу абсолютные значения вместо углов.

Добавлено через 6 минут и 8 секунд
А оригинальная задача учитывает гравитационное действие, частица отражается от стенок камеры. Меняет поляризацию в процессе столкновений. Громоздкая программа. Как-то надо согласовать трекинг, который уже прописан с теми координатами,что в файле.
PM MAIL   Вверх
SvetlanaS
Дата 16.4.2013, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.4.2013

Репутация: нет
Всего: нет



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

Добавлено через 2 минуты и 10 секунд
В постоянном поле 1000 частиц обрабатывалась минут 20-25.

PM MAIL   Вверх
math64
Дата 16.4.2013, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 12
Всего: 72



Значения поля меняется только по z? Тогда можно делить не на кубики, а на слои. Частица должна отражаться от верхней/нижней стенки только в верхнем и нижнем слое. В середине - переходить из одного слоя в другой.

PM   Вверх
SvetlanaS
Дата 16.4.2013, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.4.2013

Репутация: нет
Всего: нет



Нет, я привела в примере только начало файла.. Там сложное движение нейтронов по объему камеры.

Добавлено через 2 минуты и 30 секунд
Spintracking в полях 
PM MAIL   Вверх
SvetlanaS
Дата 16.4.2013, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.4.2013

Репутация: нет
Всего: нет



Забыла добавить.. Конечно, C++
PM MAIL   Вверх
math64
Дата 17.4.2013, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 12
Всего: 72



Тогда дели на кубики.
В исходной задаче выдели отдельно отражение от стенки и движение внутри камеры.
При достижении границы кубика передаёшь частицу в соседний или отражаешь от стенки.
При отсутствии магнитного поля, если не ошибаюсь, должен быть потенциал. Вместо вектора (Ex, Ey, Ez) можно использовать U
Тогда Ex = (Uправ - Uлев)/dx, Ey = (Uтыл - Uпер) / dy, Ez = (Uверх - Uниз) / dz
где Uправ, Uлев, Uтыл, Uпер, Uверх, Uниз - потенциалы на гранях кубика, dx, dy dz - размеры кубика.
Если разбить на кубики 10x10x10 программа будет работать примерно в 1000 раз дольше, или нужно оптимизировать.

Это сообщение отредактировал(а) math64 - 17.4.2013, 08:22
PM   Вверх
SvetlanaS
  Дата 17.4.2013, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.4.2013

Репутация: нет
Всего: нет



smile Спасибо большое! Тут не все так просто. В эксперименте есть и магнитное поле, и диполи. Действует гравитация. Мне кажется, наилучшим путем будет фитирование каким-нибудь полиномом этого поля..Оно достаточно гладко и мало изменяется от искажений.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0801 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.