Создание базы данных экспериментов с плазменным кристаллом

Автор: Пользователь скрыл имя, 16 Июня 2014 в 13:58, магистерская работа

Краткое описание

Несмотря на широкую распространенность в природе и исключительно важную роль в самых различных областях науки и техники: от источников света до термоядерного синтеза и нанотехнологий – плазма, исследования которой продолжаются уже второе столетие, остается до конца не понятым объектом. Даже для простейших случаев газового разряда в инертных газах теоретики не могут предложить четкого алгоритма расчета внутренних параметров плазмы и ее эмиссионных характеристик на основе произвольно устанавливаемых экспериментатором факторов (размер среды, напряжение питания, род и давление газа). Тем не менее, не прекращаются попытки построить модели значительно более сложных экзотических плазменных сред. Так в 70-х и начале 80-х годов прошлого века появляются работы, в которых на основе классической статистической механики с использованием численных методов решения соответствующих уравнений методом Монте-Карло исследуются свойства однокомпонентной полностью ионизованной плазмы гелия при температуре около 108 К и плотности вещества 1029 cм-3.

Файлы: 1 файл

Диплом Соколов АВ.doc

— 1,009.50 Кб (Скачать)

<tr class='intheader'><td>Фамилия</td><td>Имя</td><td>Отчество</td></tr>

<tr>

           <td><input type='text' width=100% name='who_engineer_lastname_new' value='$row[who_engineer_lastname]'></td>

    <td><input type='text' width=100% name='who_engineer_firstname_new' value='$row[who_engineer_firstname]'></td>

    <td><input type='text' width=100% name='who_engineer_patronymic_new' value='$row[who_engineer_patronymic]'></td>

</tr>

</tbody></table>

    </td></tr>

    <tr>

<td colspan=2 align=center><input name='action' type='submit' value='Сохранить'>

".($list_types!=0?"<input name='action' type='submit' value='Удалить' onClick=\"return confirm('Вы уверены, что хотите удалить запись?')\">":"")."</td>

    </tr>

   </table>

</td></tr>

</table>

</form><BR>

<CENTER>$links</CENTER>

    ";

}

 

function UpdateEngineer() {

    global $logged_gid, $setup;

    $perm_add=$setup->AccessAllow($setup->GetSectionSID("exp"), $logged_gid, "add");

    $links=$this->GetLinks($perm_add);

    if (isset($_POST['who_engineer_lastname_new'])) $who_engineer_lastname_new=$_POST['who_engineer_lastname_new'];

    else $who_engineer_lastname_new="";

    if (isset($_POST['who_engineer_firstname_new'])) $who_engineer_firstname_new=$_POST['who_engineer_firstname_new'];

    else $who_engineer_firstname_new="";

    if (isset($_POST['who_engineer_patronymic_new'])) $who_engineer_patronymic_new=$_POST['who_engineer_patronymic_new'];

    else $who_engineer_patronymic_new="";

    if (isset($_POST['action'])) $action=$_POST['action'];

    else $action="";

    if (isset($_POST['number'])) $number=$_POST['number'];

    else $number="";

 

    if (!$who_engineer_lastname_new) {

$welcome="Не заполнено поле.";

    } else {

$who_engineer_lastname_new=trim($who_engineer_lastname_new);

$who_engineer_firstname_new=trim($who_engineer_firstname_new);

$who_engineer_patronymic_new=trim($who_engineer_patronymic_new);

if ($action=='Сохранить') {

    if ($number) {

$query="update who_engineer set who_engineer_lastname='$who_engineer_lastname_new', who_engineer_firstname='$who_engineer_firstname_new', who_engineer_patronymic='$who_engineer_patronymic_new' where who_engineer_id='$number'";

$welcome="Замена записи на \"$who_engineer_lastname_new $who_engineer_firstname_new $who_engineer_patronymic_new\" прошла  удачно.";

    } else {

$query="insert into who_engineer set who_engineer_lastname='$who_engineer_lastname_new', who_engineer_firstname='$who_engineer_firstname_new', who_engineer_patronymic='$who_engineer_patronymic_new'";

$welcome="Добавление записи \"$who_engineer_lastname_new $who_engineer_firstname_new $who_engineer_patronymic_new\" прошло  удачно.";

    }

    mquery($query);

}        

if ($action=='Удалить') {

    $exist=mysql_num_rows(mquery("select * from who where who_engineer='$number'"));

    if (!$exist) {    

$welcome="Удаление записи \"$who_engineer_lastname_new $who_engineer_firstname_new $who_engineer_patronymic_new\" прошло удачно.";

mquery("delete from who_engineer where who_engineer_id='$number'");

    } else {

$welcome="<font color=red>Удаление невозможно:</font> Запись \"$who_engineer_lastname_new $who_engineer_firstname_new $who_engineer_patronymic_new\" используется в таблицах.";

    }

}

    }

 

    return "

<CENTER>$links</CENTER><BR>

<table align='center' cellspacing=1 cellpadding=0 class='mainheader'>

<tr class='mainheader'><td><img src='../img/head.gif' alt='' width='8' height='8'> Изменение записи</td></tr>

<tr class='header'>

    <td>$welcome</td>

</tr>

</table><BR>

<CENTER>$links</CENTER>

    ";

}

 

function EditExp($QUERY_STRING) {

    global $logged_gid, $setup;

    $perm_add=$setup->AccessAllow($setup->GetSectionSID("exp"), $logged_gid, "add");

    $links=$this->GetLinks($perm_add);

    if ($QUERY_STRING==-1 and !isset($_FILES['report_file'])) {

return "

    <table align='center' cellspacing=1 cellpadding=0 class='mainheader'>

    <tr class='mainheader'><td><img src='img/head.gif' alt='' width='8' height='8'> Добавление записи (отчет)<br></td></tr>

    <tr class='header'><td>Не указан  файл!</td></tr>

    </table>

";

    }

    $s=array('ps'=>"", 'am'=>"", 'cm'=>"", 'mg'=>"", 'pm'=>"", 'pi'=>"");

    $changed="*";

    $name_new="";

   

    $result_query=mquery("

    SELECT *,

date_format(exp_date, '%d.%m.%Y') as exp_date,

t1.electrode_material_type as cathode_material,

t2.electrode_material_type as anode_material

    FROM

exp, part, part_shape, part_input, who, who_engineer, who_org, who_place, tube, cathode_type,

tube_electrode_material as t1, tube_electrode_material as t2, power, power_shape, results

    WHERE

exp_part=part_id and

part_shape=part_shape_id and

part_input=part_input_id and

exp_who=who_id and

who_engineer=who_engineer_id and

who_org=who_org_id and

who_place=who_place_id and

exp_tube=tube_id and

tube_cathode_type=cathode_id and

tube_cathode_material=t1.electrode_material_id and

tube_anode_material=t2.electrode_material_id and

exp_power=power_id and

power_shape=power_shape_id and

exp_results=results_id and

exp_id='$QUERY_STRING'

    ");

 

    $row_query=mysql_fetch_assoc($result_query);

    unset($new_part_material);

   

    if ($QUERY_STRING==-1) {

$action='Добавление записи (отчет)';

$r_pattern=array(

    '/(\d{1,2}\.\d{1,2}\.\d{1,2})/',

    '/Длина волны, A:(.+)/',

    '/Материал частиц:(.+)/',

    '/Размер частиц: .+, 1-(\d+) мкм./',

    '/Способ ввода частиц:(.+)/',

    '/Межэлектродное расстояние, \(см\):(.+)/',

    '/Форма питающего напряжения:(.+)/',

    '/Способ инициирования  разряда:(.+)/',

    '/Размер катода:(.+)/',

    '/Размер анода:(.+)/',

    '/Форма электродов:(.+)/',

    '/Материал катода:(.+)/',

    '/Материал анода:(.+)/',

    '/Конструкция газоразрядной  камеры:(.+)/',

    '/Давление в газовой  среде:(.+)Торр/',

    '/Состав газовой среды:(.+)/'

);

 

$report=file($_FILES['report_file']['tmp_name']);

 

for($i=0; $i<sizeof($r_pattern); $i++) {

    for ($j=0; $j<sizeof($report); $j++) if (preg_match($r_pattern[$i], $report[$j], $matches)) break;

    if (count($matches)) $report_out[$i]=trim($matches[1]);

}

 

$row_query['exp_date']=$report_out[0];      // Дата проведения

$m=explode(",", $report_out[2]);      // Материал частиц

for ($i=0; $i<sizeof($m); $i++) {

    $new_part_material[$i]=trim($m[$i]);

}

 

$row_query['part_size_avg']=str_replace(",", ".", $report_out[3]);  // Размер частиц

$new_part_input=$report_out[4];       // Способ ввода частиц

$row_query['tube_electrode_distance']=str_replace(",", ".", $report_out[5]); // Межэлектродное расстояние

$new_power_shape=$report_out[6];      // Форма питающего напряжения

 

preg_match('/D=(.+)мм L=(.+)см./', $report_out[8], $matches);   // Площадь катода

$D=trim(str_replace(",", ".", $matches[1]));

$L=trim(str_replace(",", ".", $matches[2]));

$row_query['tube_cathode_square']=$D*$L/10;

 

preg_match('/D=(.+)мм L=(.+)см./', $report_out[9], $matches);   // Площадь анода

$D=trim(str_replace(",", ".", $matches[1]));

$L=trim(str_replace(",", ".", $matches[2]));

$row_query['tube_anode_square']=$D*$L/10;

 

$new_cathode_material=$report_out[11];      // Материал катода

$new_anode_material=$report_out[12];      // Материал анода

preg_match('/D=(.+)мм./', $report_out[13], $matches);

$row_query['tube_diameter']=trim($matches[1])/10;

 

$new_pressure=str_replace(",", ".", $report_out[14]);    // Давление в газовой среде

 

$m=explode(",", $report_out[15]);      // Состав газовой среды

if (sizeof($m)>1) {

    for ($i=0; $i<sizeof($m); $i++) {

preg_match('/(.+)-(.+)%/', $m[$i], $matches);

$new_gas[$i]=trim($matches[1]);

$new_percentage[$i]=trim($matches[2]);

    }

} else {

    $new_gas[0]=trim($m[0]);

    $new_percentage[0]="100%";

}

    } elseif ($QUERY_STRING==0) $action='Добавление  записи';

    else $action='Внесение изменений';

 

    ////////////////////////////////////////////////////////////////////////////////////

    // Форма частиц

    $result=mquery("select * from part_shape order by part_shape_type");

    $part_shapes=""; if (!isset($row_query['part_shape'])) $row_query['part_shape']="";

    while ($row=mysql_fetch_assoc($result)) {

if ($row['part_shape_id']==1) {

    $part_shapes="<option ".($row_query['part_shape']==$row['part_shape_id']?"selected":"")." value='$row[part_shape_id]'>$row[part_shape_type]".$part_shapes;

} else {

    $part_shapes.="<option ".($row_query['part_shape']==$row['part_shape_id']?"selected":"")." value='$row[part_shape_id]'>$row[part_shape_type]";

}

    }

    mysql_free_result($result);

   

    ////////////////////////////////////////////////////////////////////////////////////

    // Способ ввода частиц

    $result=mquery("select * from part_input order by part_input_type");

    $part_inputs=""; if (!isset($row_query['part_input'])) $row_query['part_input']="";

    $add_entry=true;

    while ($row=mysql_fetch_assoc($result)) {

if ($QUERY_STRING==-1 and $row['part_input_type']==$new_part_input) {

    $add_entry=false;

    $row_query['part_input']=$row['part_input_id'];

}

if ($row['part_input_id']==1) {

    $part_inputs="<option ".($row_query['part_input']==$row['part_input_id']?"selected":"")." value='$row[part_input_id]'>$row[part_input_type]".$part_inputs;

} else {

    $part_inputs.="<option ".($row_query['part_input']==$row['part_input_id']?"selected":"")." value='$row[part_input_id]'>$row[part_input_type]";

}

    }

    if ($QUERY_STRING==-1 and $add_entry) {

$s['pi']=$changed;

$part_inputs.="<option selected value='###new_type_to_add'>$new_part_input";

$name_new.="<input type='hidden' name='new_part_input_type' value='$new_part_input'>";

    }

    mysql_free_result($result);

   

    ////////////////////////////////////////////////////////////////////////////////////

    // Материал частиц

    $result=mquery("select * from part_material_type where part_material_type_id>1 order by part_material_type_type");

    $part_materials=""; if (!isset($row_query['part_id'])) $row_query['part_id']="";

    if (isset($new_part_material)) for ($i=0; $i<sizeof($new_part_material); $i++) {

$add_ent[$i]=true;

    }

    if (mysql_num_rows($result)) {

$part_materials="<table cellspacing=0 cellpadding=0 class='inttoint'><tr class=\"int\">";

$n=0;

while ($row=mysql_fetch_assoc($result)) {

    $n++;

    if ($n==6) {

$n=0;

$part_materials.="</tr><tr class=\"int\">";

    }

    $result_mtr=mquery("select * from part_material where part_material_id='$row_query[part_id]' and part_material_type='$row[part_material_type_id]'");

    $mtr_chk=mysql_num_rows($result_mtr);

    if ($QUERY_STRING==-1) {

for ($i=0; $i<sizeof($new_part_material); $i++) {

    if ($row['part_material_type_type']==$new_part_material[$i]) {

$add_ent[$i]=false;

$mtr_chk++;

    }

}

    }

    $part_materials.="<td width=20%><input ".($mtr_chk?"checked":"")." name='material_edit[]' class='noborder' type=checkbox value='$row[part_material_type_id]'>$row[part_material_type_type]</td>";

    mysql_free_result($result_mtr);

}

$k=5-$n;

$part_materials.="<td colspan=$k></td></tr></table>";

    }

 

    if ($QUERY_STRING==-1) {

$part_mtrs="";

$output=false;

$max=0;

for ($i=0; $i<sizeof($new_part_material); $i++) {

    if ($add_ent[$i]) {

$s['pm']=$changed;

$output=true;

if (!($i%6) and $i) {

    $part_mtrs.="</tr><tr>";

}

$part_mtrs.="<td width=20%><input checked name='material_edit[]' class='noborder' type=checkbox value='###new_type_to_add'>".$new_part_material[$i]."</td>";

$max=($i>$max)?$i:$max;

$name_new.="<input type='hidden' name='new_part_material_type[]' value='$new_part_material[$i]'>";

    }

}

if ($output) {

    $part_materials.="<table cellspacing=0 cellpadding=0 class='inttoint'><tr><td colspan=$max>Будут  добавлены:</td></tr><tr>$part_mtrs</tr></table>";

}

    }

    mysql_free_result($result);

 

    ////////////////////////////////////////////////////////////////////////////////////

    // Состав среды

    $result=mquery("select * from medium_gas where medium_gas_id>1 order by medium_gas_type");

    $medium_gases=""; if (!isset($row_query['exp_id'])) $row_query['exp_id']="";

    if (isset($new_part_material)) for ($i=0; $i<sizeof($new_gas); $i++) {

$add_ent[$i]=true;

    }

    if (mysql_num_rows($result)) {

$medium_gases="<table cellspacing=1 cellpadding=0 class='inttoint'><tbody align=center><tr class='intheader'><td width=40%>Название газа</td><td width=30%>Давление, Торр</td><td width=30%>Процентное содержание, %</td></tr>";

        $n=0;

$gas_chk=0;

while ($row=mysql_fetch_assoc($result)) {

    $result_mdm=mquery("select * from medium where medium_id='$row_query[exp_id]' and medium_gas='$row[medium_gas_id]'");

    $gas_chk=mysql_num_rows($result_mdm);

    if ($gas_chk) $row_mdm=mysql_fetch_assoc($result_mdm);

    if ($QUERY_STRING==-1) {

for ($i=0; $i<sizeof($new_gas); $i++) {

    if ($row['medium_gas_type']==$new_gas[$i]) {

$row_mdm['medium_percentage']=$new_percentage[$i];

        $row_mdm['medium_pressure']=$new_pressure;

        $add_ent[$i]=false;

        $gas_chk++;

    }

}

    }

   

    $medium_gases.="

<tr class=\"int\">

    <td align=left><input ".($gas_chk?"checked":"")." name='gas_edit[0][$n]' class='noborder' type=checkbox value='$row[medium_gas_id]'>$row[medium_gas_type]</td>

    <td><input type=text size=5 name='gas_edit[1][$n]' ".($gas_chk?"value='$row_mdm[medium_pressure]'":"value=''")."></td>

    <td><input type=text size=5 name='gas_edit[2][$n]' ".($gas_chk?"value='$row_mdm[medium_percentage]'":"value=''")."></td>

</tr>

    ";

    $n++;

    mysql_free_result($result_mdm);

}

$medium_gases.="</tbody></table>";

    }

 

    if ($QUERY_STRING==-1) {

$mdm_gases="";

$output=false;

for ($i=0; $i<sizeof($new_gas); $i++) {

    if ($add_ent[$i]) {

$s['mg']=$changed;

$output=true;

$mdm_gases.="

    <tr>

<td width=40% align=left><input checked name='gas_edit[0][$n]' class='noborder' type=checkbox value='###new_type_to_add'>".$new_gas[$i]."</td>

<td width=30%><input type=text size=5 name='gas_edit[1][$n]' value='$new_pressure'></td>

<td width=30%><input type=text size=5 name='gas_edit[2][$n]' value='$new_percentage[$i]')></td>

    </tr>

";

$n++;

$name_new.="<input type='hidden' name='new_gas_type[]' value='$new_gas[$i]'>";

    }

}

if ($output) $medium_gases.="<table cellspacing=1 cellpadding=0 class='inttoint'><tbody align=center><tr><td colspan=3 align='left'>Будут добавлены:</td></tr>$mdm_gases</tbody></table>";

$name_new.="<input type='hidden' name='n' value='$n'>";

    }

    mysql_free_result($result);

 

    ////////////////////////////////////////////////////////////////////////////////////

    // Кто проводил

    $result=mquery("select * from who_engineer order by who_engineer_lastname");

    $who_engineers=""; if (!isset($row_query['who_engineer'])) $row_query['who_engineer']="";

    while ($row=mysql_fetch_assoc($result)) {

if ($row['who_engineer_id']==1) {

    $who_engineers="<option ".($row_query['who_engineer']==$row['who_engineer_id']?"selected":"")." value='$row[who_engineer_id]'>$row[who_engineer_lastname] $row[who_engineer_firstname] $row[who_engineer_patronymic]".$who_engineers;

} else {

    $who_engineers.="<option ".($row_query['who_engineer']==$row['who_engineer_id']?"selected":"")." value='$row[who_engineer_id]'>$row[who_engineer_lastname] $row[who_engineer_firstname] $row[who_engineer_patronymic]";

}

    }

    mysql_free_result($result);

 

    ////////////////////////////////////////////////////////////////////////////////////

    // Проводившая организация

    $result=mquery("select * from who_org order by who_org_type");

    $who_orgs=""; if (!isset($row_query['who_org'])) $row_query['who_org']="";

    while ($row=mysql_fetch_assoc($result)) {

if ($row['who_org_id']==1) {

Информация о работе Создание базы данных экспериментов с плазменным кристаллом