Skip to content

Instantly share code, notes, and snippets.

View Corwinpro's full-sized avatar

Petr Kungurtsev Corwinpro

View GitHub Profile
#10D Improvement made: -0.737295065591 at: [3.1419642100697103, 3.083081517990897, 3.037046544480138, 2.983031641774718, 1.4454720306407767, 0.4157516943765218, 0.3054390332826271, 0.25557513716674896, 0.3844567203155933, 0.47479136622732576]
import math
import random
import numpy as np
CallsLimit = 5000
dimension = 10
def objFunction(x):
global TotalCalls; TotalCalls += 1
#10D Improvement made: -0.737295065591 at: [3.1419642100697103, 3.083081517990897, 3.037046544480138, 2.983031641774718, 1.4454720306407767, 0.4157516943765218, 0.3054390332826271, 0.25557513716674896, 0.3844567203155933, 0.47479136622732576]
import math
import random
import numpy as np
import matplotlib.pyplot as plt
import time
CallsLimit = 5000
dimension = 2
@Corwinpro
Corwinpro / SA.py
Last active January 12, 2017 16:10
import math
import random
import numpy as np
import time
CallsLimit = 5000
dimension = 10
TrialsNumber = 199
AcceptsNumber = int(0.6*TrialsNumber)
[n,m] = size(A1); %size of matrix
options = optimoptions('linprog','Algorithm','dual-simplex'); % setting dual-simplex for solver
result1_L1 = linprog([zeros(m,1);ones(n,1)],[+A1,-eye(n);-A1,-eye(n)],[b1;-b1]); % solving L1 norm, see http://math.stackexchange.com/questions/81150/solving-ax-b-under-l-1-ax-b-minimization
result1_L1_x = result1_L1(1:m); % result L1-norm X vector
res1_L1_norm = norm(A1*result1_L1_x - b1, 1); %residuals L1 norm
result1_Linf = linprog([zeros(m,1);ones(1,1)],[+A1,-ones(n,1);-A1,-ones(n,1)],[b1;-b1]); % solving Linf norm minimization
result1_Linf_x = result1_L1inf(1:m); % result L1-norm X vector
res1_Linf_norm = norm(A1*result1_Linf_x - b1, 1); %residuals Linf norm
import numpy as np
import pandas
import matplotlib.ticker as mtick
import matplotlib.pyplot as plt
import math
import matplotlib
import matplotlib.patches as mpatches
import numpy as np
import pandas
import matplotlib.ticker as mtick
import matplotlib.pyplot as plt
import math
import matplotlib
import matplotlib.patches as mpatches
\newpage
\clearpage
\section{Результаты работы}
\hspace{0.5cm} Результаты исследовательской практики, представленные в настоящей работе, были получены с 10.2014 по 06.2016 в лаборатории вычислительной аэродинамики ИТПМ СО РАН и лаборатории неравновесных течений НГУ.
Моделирование проводилось с использованием программных комплексов $Smile$ (Fortran77) и $Smile$++ (C++). Первые результаты, в том числе имплементация аналитического решения \cite{ShnKinetic} затухания интенсивности в возмущенном газе, были получены на $Smile$. Было проведено их сравнение с результатами более ранних работ M. Shneider, S. Gimelshein, T. Lilly, J. Graul и др. Дальнейшее развитие численной модели и основные результаты, представленные в данной главе, получены на $Smile++$ - более современной, гибкой и удобной для разработке платформе, обладающей также рядом значительных улучшений в производительности и скорости вычислений по сравнению с ранними вычислительными кодами.
В ходе работы были получены следующие результаты:
\newpage
\section{Методы исследования}
\subsection{Общая постановка задачи}
\subsubsection{Взаимодействие газа и оптической решетки}
\hspace{0.5cm} Газ нейтральных частиц, находящийся в поле оптической решетки, испытывает нерезонансное воздействие со стороны электрического поля и поляризуется, преобретая ненулевой дипольный момент. Потенциал взаимодействия пространственно неоднородного электрического поля и диполя в квазиэлектростатическом приближении \cite{Boyd},\cite{Takekoshi} имеет вид \eqref{eq:fieldU}, где $\alpha$ - статическая поляризуемость частиц газа.
\subsubsection{Двухфазные течения в каналах}
\hspace{0.5cm} Совместный поток жидкости и газа (пара) в канале может принимать различные формы в зависимости распределения, содержания и состояния каждой фазы, и каждая из них относится одному из так называемых "режимов течения". Четыре основных режима течений: пузырьковый, прерывистый, кольцевой и расслоенный, а также множество подрежимов, идентифицированны в литературе, например в \cite{hewitt}. Пузырьковый режим характеризуется равномерным распределением маленьких сферических пузырьков в жидкой фазе. В прерывистом режиме отмечают движение <<пробок>> жидкости вдоль канала, разделенных продолговатыми пулевидными газовыми пузырями с образованием газового <<ядра>>, часто содержащего капли жидкости. В горизонтальных или близких к горизонтальым каналам может возникнуть также расслоенный режим течения, при котором жидкость течет по нижней части канала с газом cверху. Такой режим реализуется в основном при достаточно низких скоростях фаз. В работе \cite{rahim2011} ра
\newpage
\section{Обзор литературы.}
Современные технологии лазерной техники позволяют создавать лазерные пучки высокой интенсивности ($\sim 10^{16} - 10^{18}$ Вт/м$^2$) для формирования интерференционной решетки двух встречных электромагнитных волн. Помещенный в поле оптической решетки газ поляризуемых частиц под действием градиентной (дипольной) силы может изменять локальное распределение плотности, среднюю скорость движения и температуру. Исследования показывают, что использование оптических потенциалов возможно для управления отдельными атомами (например, в ультрахолодных газах \cite{blochNature}), ускорения частиц в молекулярных пучках до скоростей порядка км/с \cite{Kazantsev1973}, охлаждение групп молекул \cite{BarkShn2002} и сепарация газовых смесей \cite{ShevIvan2009}. Важными направлениями применения оптических решеток является быстрое изменение скорости молекул и атомов, температуры газовых потоков \cite{GraulGimHeating} и неинтрузивная диагностика газа \cite{Grinstead2000},\cite{ShnCBRS}. Все это