Редактирование: Статистические распределения в двумерном кристалле с треугольной решеткой

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
[[ТМ|Кафедра ТМ]] > [[Проект "Термокристалл"]] > [[Статистические распределения в двумерном кристалле с треугольной решеткой]] <HR>
+
[[Виртуальная лаборатория]] > [[Статистические распределения в двумерном кристалле с треугольной решеткой]]
[[Виртуальная лаборатория]] > [[Статистические распределения в двумерном кристалле с треугольной решеткой]] <HR>
 
  
 
Рассматривается система частиц моделируемых материальными точками с линейным законом взаимодействия
 
Рассматривается система частиц моделируемых материальными точками с линейным законом взаимодействия
Строка 24: Строка 23:
 
<math>m = 1,\quad c = 1</math>, шаг интегрирования <math>dt = 0.005</math>.
 
<math>m = 1,\quad c = 1</math>, шаг интегрирования <math>dt = 0.005</math>.
  
{{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/Tsaplin/TriLatLin.html |width=1050 |height=2050 |border=0 }}
+
{{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/Tsaplin/TriLatLin.html |width=1050 |height=1550 |border=0 }}
 
Скачать программу: [[Медиа:TriLatLin.zip | TriLatLin.zip]]
 
Скачать программу: [[Медиа:TriLatLin.zip | TriLatLin.zip]]
  
Строка 33: Строка 32:
 
function MainTriLatticeTemper()
 
function MainTriLatticeTemper()
 
{
 
{
     var ctx_X = canvas_densitas_Vx.getContext("2d"); // для рисования плотности
+
     var ctx_X = canvas_densitas_Vx.getContext("2d");
 
     var width_X = canvas_densitas_Vx.width;
 
     var width_X = canvas_densitas_Vx.width;
 
     var height_X = canvas_densitas_Vx.height;
 
     var height_X = canvas_densitas_Vx.height;
  
     var ctx_Y = canvas_densitas_Vy.getContext("2d"); // для рисования плотности
+
     var ctx_Y = canvas_densitas_Vy.getContext("2d");
 
     var width_Y = canvas_densitas_Vy.width;
 
     var width_Y = canvas_densitas_Vy.width;
 
     var height_Y = canvas_densitas_Vy.height;
 
     var height_Y = canvas_densitas_Vy.height;
  
     var ctx_E = canvas_energy.getContext("2d");     // для рисования графика энергии
+
     var ctx_E = canvas_energy.getContext("2d");
 
     var width_E = canvas_energy.width;
 
     var width_E = canvas_energy.width;
 
     var height_E = canvas_energy.height;
 
     var height_E = canvas_energy.height;
 
    var ctx_V = canvas_nubes_V.getContext("2d");    // для рисования облака
 
    var width_V = canvas_nubes_V.width;
 
    var height_V = canvas_nubes_V.height;
 
 
    var ctx_U = canvas_nubes_U.getContext("2d");    // для рисования облака
 
    var width_U = canvas_nubes_U.width;
 
    var height_U = canvas_nubes_U.height;
 
  
 
     // частица содержит перемещения и скорости
 
     // частица содержит перемещения и скорости
Строка 57: Строка 48:
 
     var _Vx;
 
     var _Vx;
 
     var _Vy;
 
     var _Vy;
     var Vx2_sum;         // сумма квадратов координат скорости Vx (с весом s)
+
     var Vx2_sum; // сумма квадратов координат скорости Vx (с весом s)
     var Vxy_sum;         // сумма произведений координат скорости VxVy (с весом s)
+
     var Vxy_sum; // сумма произведений координат скорости VxVy (с весом s)
     var Vy2_sum;         // сумма квадратов координат скорости Vy (с весом s)
+
     var Vy2_sum; // сумма квадратов координат скорости Vy (с весом s)
     var Vx4_sum;         // сумма (координат скорости Vx)^4 (с весом s)
+
     var Vx4_sum; // сумма (координат скорости Vx)^4 (с весом s)
     var Vy4_sum;         // сумма (координат скорости Vy)^4 (с весом s)
+
     var Vy4_sum; // сумма (координат скорости Vy)^4 (с весом s)
 
     var U1x_sum, U1y_sum;
 
     var U1x_sum, U1y_sum;
     var Vx2_av;         // средний Vx^2 c эксп. весом (для графиков)
+
     var Vx2_av; // средний Vx^2 c эксп. весом (для графиков)
     var Vy2_av;         // средний Vy^2 c эксп. весом
+
     var Vy2_av; // средний Vy^2 c эксп. весом
  
     var suspended = 0;   // вычисление приостановлено == 1
+
     var suspended = 0; // вычисление приостановлено == 1
  
 
     // массив частиц
 
     // массив частиц
Строка 439: Строка 430:
 
         span_t.innerHTML = (s*dt_sc_m).toFixed(2);
 
         span_t.innerHTML = (s*dt_sc_m).toFixed(2);
 
         span_steps.innerHTML = s;
 
         span_steps.innerHTML = s;
       
 
        DrawNubes(ctx_V, width_V, height_V, 0/*n_can*/);
 
        DrawNubes(ctx_U, width_U, height_U, 1/*n_can*/);
 
 
     }
 
     }
  
Строка 617: Строка 605:
 
         ctx_E.lineTo(width_E, y);
 
         ctx_E.lineTo(width_E, y);
 
         ctx_E.stroke();
 
         ctx_E.stroke();
    }
 
 
    function DrawNubes(ctx, width, height, n_can)  // рисования облака
 
    {
 
        ctx.strokeStyle="#000000";
 
        ctx.lineWidth=1;                        // ширина линии
 
        ctx.clearRect(0, 0, width, height);    // очистить экран
 
        ctx.beginPath();
 
 
        if (n_can == 0)
 
        {
 
            for (var k = 0; k < n; k++)
 
            {
 
                i = k%n1;
 
                j = Math.floor(k/n1);
 
 
                var x = Math.floor((Arr_prt[j][i].Vx/V_max+1)*width/2);
 
                var y = Math.floor((Arr_prt[j][i].Vy/V_max+1)*height/2);
 
                ctx.moveTo(x-1, y);
 
                ctx.lineTo(x+1, y);
 
            }
 
 
            ctx.stroke();
 
        }
 
        else
 
        {
 
            for (var k = 0; k < n; k++)
 
            {
 
                i = k%n1;
 
                j = Math.floor(k/n1);
 
 
                var x = Math.floor((Arr_prt[j][i].Ux/V_max+1)*width/2);
 
                var y = Math.floor((Arr_prt[j][i].Uy/V_max+1)*height/2);
 
                ctx.moveTo(x-1, y);
 
                ctx.lineTo(x+1, y);
 
            }
 
 
            ctx.stroke();
 
        }
 
 
     }
 
     }
  
Строка 702: Строка 651:
 
         suspend_calc.value = suspend_calc.name;
 
         suspend_calc.value = suspend_calc.name;
 
         suspend_calc.name = str;
 
         suspend_calc.name = str;
 
        str = suspend_calc1.value;
 
        suspend_calc1.value = suspend_calc1.name;
 
        suspend_calc1.name = str;
 
 
     };
 
     };
    reset_calc1.onclick = reset_calc.onclick;
 
    suspend_calc1.onclick = suspend_calc.onclick;
 
 
     number_input_n1.oninput = function()
 
     number_input_n1.oninput = function()
 
     {
 
     {
Строка 885: Строка 828:
 
     <br>
 
     <br>
 
     Время <I>t</I> = <span id="span_t">  </span> (<span id="span_steps"></span> шагов)</p>
 
     Время <I>t</I> = <span id="span_t">  </span> (<span id="span_steps"></span> шагов)</p>
 
    <table>
 
        <tr>
 
            <td></td><td style="text-align: center"><B>Скорости частиц</B></td>
 
            <td></td><td style="text-align: center"><B>Перемещения частиц</B></td>
 
        </tr>
 
        <tr><td><I><B>V<SUB>y</SUB></B></I></td>
 
            <td><canvas id="canvas_nubes_V" width="400" height="400" style="border:
 
                1px solid #000000"></canvas></td>
 
            <td  width=100 style="text-align: right"><I><B>U<SUB>y</SUB></B></I></td>
 
            <td><canvas id="canvas_nubes_U" width="400" height="400" style="border:
 
                1px solid #000000"></canvas></td>
 
        </tr>
 
        <tr><td></td><td style="text-align: center"><I><B>V<SUB>x</SUB></B></I></td>
 
            <td></td><td style="text-align: center"><I><B>U<SUB>x</SUB></B></I></td>
 
        </tr>
 
    </table>
 
    <br>
 
    <input type="button" id="reset_calc1" value="Старт">
 
    <input type="button" id="suspend_calc1" value="Приостановить" name = "Возобновить">
 
    <br>
 
    <br>
 
 
</body>
 
</body>
 
</html>
 
</html>
Строка 915: Строка 836:
 
[[Category: Виртуальная лаборатория]]
 
[[Category: Виртуальная лаборатория]]
 
[[Category: Программирование]]
 
[[Category: Программирование]]
[[Category: Проект "Термокристалл"]]
 
 
[[Category: JavaScript]]
 
[[Category: JavaScript]]
Вам запрещено изменять защиту статьи. Edit Создать редактором

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии Public Domain (см. Department of Theoretical and Applied Mechanics:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Отменить | Справка по редактированию  (в новом окне)