20.07.2013 Views

Raport de cercetare - Lorentz JÄNTSCHI

Raport de cercetare - Lorentz JÄNTSCHI

Raport de cercetare - Lorentz JÄNTSCHI

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

}<br />

Procesarea informaţiei <strong>de</strong> interacţiune la nivelul fragmentului molecular este realizată prin<br />

suprapunerea interacţiunilor pereche obţinute anterior folosind o serie <strong>de</strong> mo<strong>de</strong>le <strong>de</strong> suprapunere a<br />

interacţiunilor; funcţiile implementate în clasa class_<strong>de</strong>scriptor_3fragm.php implementează:<br />

÷ 2 tipuri <strong>de</strong> suprapuneri vectoriale folosind drept reper sistemul <strong>de</strong> coordonate <strong>de</strong> referinţă al<br />

moleculei (suprapuneri scalare pe proiecţiile axiale ale sistemului <strong>de</strong> coordonate folosit);<br />

÷ 2 tipuri <strong>de</strong> suprapuneri vectoriale folosind drept reper un sistem <strong>de</strong> coordonate local al<br />

fragmentului - calculat ca centru <strong>de</strong> proprietate - (suprapuneri scalare pe proiecţiile axiale ale<br />

sistemului <strong>de</strong> coordonate folosit);<br />

÷ 2 tipuri <strong>de</strong> suprapuneri scalare (ignorând orientarea vectorială şi folosind valoarea absolută) -<br />

interacţiune <strong>de</strong> tip potenţial;<br />

÷ 2 tipuri <strong>de</strong> selecţii ale valorilor maxime <strong>de</strong> interacţiune dintre interacţiunile existente în<br />

fragment între perechi <strong>de</strong> atomi;<br />

÷ 2 tipuri <strong>de</strong> selecţii ale valorilor minime <strong>de</strong> interacţiune dintre interacţiunile existente în fragment<br />

între perechi <strong>de</strong> atomi;<br />

class <strong>de</strong>scriptor_fragment{<br />

//versori<br />

//<strong>de</strong>scriptori <strong>de</strong> proprietate -> 1 proprietate, 1 distanta, 1 <strong>de</strong>scriptor<br />

//un fragment -> un fragment & un varf<br />

//->meto<strong>de</strong> <strong>de</strong> suprapunere<br />

function __construct($vx){<br />

$this->v=$vx;<br />

$this->n=10;<br />

$this->f=array();<br />

}<br />

function calculate($e,&$fr,&$s,&$v){<br />

$this->spp_fr_field($e,$fr,$s,$v,0);/*f*/<br />

$this->spp_vx_field($e,$fr,$s,$v,1);/*F*/<br />

$this->spp_fr_prcen($e,$fr,$s,$v,2);/*c*/<br />

$this->spp_vx_prcen($e,$fr,$s,$v,3);/*C*/<br />

$this->spp_fr_poten($e,$fr,$s,$v,4);/*p*/<br />

$this->spp_vx_poten($e,$fr,$s,$v,5);/*P*/<br />

$this->spp_fr_maxfr($e,$fr,$s,$v,6);/*a*/<br />

$this->spp_vx_maxvx($e,$fr,$s,$v,7);/*A*/<br />

$this->spp_fr_minfr($e,$fr,$s,$v,8);/*i*/<br />

$this->spp_vx_minvx($e,$fr,$s,$v,9);/*I*/<br />

}<br />

function spp_fr_field($e,&$fr,&$s,&$v,$a){<br />

//suprapune proiectii axiale<br />

//interactii in fragment, in<strong>de</strong>pen<strong>de</strong>nte <strong>de</strong> varf<br />

$this->n=count($fr);<br />

$fr_f_x=0.0;<br />

$fr_f_y=0.0;<br />

$fr_f_z=0.0;<br />

for($i=0;$in-1;$i++){<br />

for($j=$i+1;$jn;$j++){<br />

$val=$s[$fr[$i]][$fr[$j]][$e];<br />

$fr_f_x+=$val*abs($v->val(0,$fr[$i],$fr[$j]));<br />

$fr_f_y+=$val*abs($v->val(1,$fr[$i],$fr[$j]));<br />

$fr_f_z+=$val*abs($v->val(2,$fr[$i],$fr[$j]));<br />

}<br />

}<br />

$fr_f_t=pow(pow($fr_f_x,2)+pow($fr_f_y,2)+pow($fr_f_z,2),0.5);<br />

if(!$fr_f_t) $fr_f_t=1.0;<br />

$fr_f_x/=$fr_f_t;<br />

$fr_f_y/=$fr_f_t;<br />

$fr_f_z/=$fr_f_t;<br />

$this->f[$a]=array($fr_f_t,$fr_f_x,$fr_f_y,$fr_f_z);<br />

}<br />

function spp_vx_field($e,&$fr,&$s,&$v,$a){<br />

//suprapune proiectii axiale<br />

//interactii ale fragmentului cu varful<br />

$fr_f_x=0.0;<br />

$fr_f_y=0.0;<br />

$fr_f_z=0.0;<br />

for($i=0;$in;$i++){<br />

$val=$s[$this->v][$fr[$i]][$e];<br />

$fr_f_x+=$val*$v->val(0,$this->v,$fr[$i]);<br />

$fr_f_y+=$val*$v->val(1,$this->v,$fr[$i]);<br />

$fr_f_z+=$val*$v->val(2,$this->v,$fr[$i]);<br />

}<br />

184

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!