Skip to content

Instantly share code, notes, and snippets.

View Corwinpro's full-sized avatar

Petr Kungurtsev Corwinpro

View GitHub Profile
#ifndef LASER_FIELD_H
#define LASER_FIELD_H
#include "mytype.h"
#include "reader.h"
#include <cmath>
#include <complex> // std::complex, std::abs
class Laser
//Plot refreshing data on screen
set xrange [0:10]
set yrange [0.8e25:3.2e25]
unset autoscale
do for [i=1:4000] { plot sprintf('field_%d0.txt',i) u ($0/100):1 w lp pt 6; pause 0.05; set title sprintf('Time: %.1e',i*1.e-11)}
//Make video file
=====loop.plt=====
j = i*5 //need to make 1,2,3...-like png files
\newpage
\section{Обзор литературы.}
Современные технологии лазерной техники позволяют создавать лазерные пучки высокой интенсивности ($\sim 10^{16} - 10^{18}$ Вт/м$^2$) для формирования интерференционной решетки двух встречных электромагнитных волн. Помещенный в поле оптической решетки газ поляризуемых частиц под действием градиентной (дипольной) силы может изменять локальное распределение плотности, среднюю скорость движения и температуру. Исследования показывают, что использование оптических потенциалов возможно для управления отдельными атомами (например, в ультрахолодных газах \cite{blochNature}), ускорения частиц в молекулярных пучках до скоростей порядка км/с \cite{Kazantsev1973}, охлаждение групп молекул \cite{BarkShn2002} и сепарация газовых смесей \cite{ShevIvan2009}. Важными направлениями применения оптических решеток является быстрое изменение скорости молекул и атомов, температуры газовых потоков \cite{GraulGimHeating} и неинтрузивная диагностика газа \cite{Grinstead2000},\cite{ShnCBRS}. Все это
\subsubsection{Двухфазные течения в каналах}
\hspace{0.5cm} Совместный поток жидкости и газа (пара) в канале может принимать различные формы в зависимости распределения, содержания и состояния каждой фазы, и каждая из них относится одному из так называемых "режимов течения". Четыре основных режима течений: пузырьковый, прерывистый, кольцевой и расслоенный, а также множество подрежимов, идентифицированны в литературе, например в \cite{hewitt}. Пузырьковый режим характеризуется равномерным распределением маленьких сферических пузырьков в жидкой фазе. В прерывистом режиме отмечают движение <<пробок>> жидкости вдоль канала, разделенных продолговатыми пулевидными газовыми пузырями с образованием газового <<ядра>>, часто содержащего капли жидкости. В горизонтальных или близких к горизонтальым каналам может возникнуть также расслоенный режим течения, при котором жидкость течет по нижней части канала с газом cверху. Такой режим реализуется в основном при достаточно низких скоростях фаз. В работе \cite{rahim2011} ра
\newpage
\section{Методы исследования}
\subsection{Общая постановка задачи}
\subsubsection{Взаимодействие газа и оптической решетки}
\hspace{0.5cm} Газ нейтральных частиц, находящийся в поле оптической решетки, испытывает нерезонансное воздействие со стороны электрического поля и поляризуется, преобретая ненулевой дипольный момент. Потенциал взаимодействия пространственно неоднородного электрического поля и диполя в квазиэлектростатическом приближении \cite{Boyd},\cite{Takekoshi} имеет вид \eqref{eq:fieldU}, где $\alpha$ - статическая поляризуемость частиц газа.
\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++$ - более современной, гибкой и удобной для разработке платформе, обладающей также рядом значительных улучшений в производительности и скорости вычислений по сравнению с ранними вычислительными кодами.
В ходе работы были получены следующие результаты:
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
[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
@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)