C/C++
Použití a příklad


Vrh tělesa v gravitačním poli s odporem prostředí.

Pohyb satelitu mezi planetou a měsícem.



Dvou-stupňové kyvadlo (1 mod).

Dvou-stupňové kyvadlo (2 mod).

Pružně vázaná tělesa v gravitačním poli.

Několik kroků dělení simulované plochy systémem stromových kódů při simulaci srážkového plasmatu.

Kousek zdrojového kódu, který toto dělení (stavbu stromu) zajišťuje:

    
void Tree::Build()
//Provádí stavbu stromu, vyžaduje předpočítaný kořen se zavěšeným seznamem částic
{
Kvadrant *cell;
Kvadrant *kvad;

  cell=root;                            //začneme v kořeni
  cell->way=0;
  Split_List(cell);

  do{
      while(cell->way<4)
        {                //všichni potomci jsou hotovi
          cell->way++;
          if (cell->mass[cell->way]>1)      //je potřeba dále dělit
            {
              kvad=New_Kvadrant();          //alokace nového kvadarntu
              kvad->child[0]=cell->child[cell->way];
              cell->child[cell->way]=kvad;
              kvad->parent=cell;
              kvad->level=cell->level+1;

              //******* Datový výstup ******** Maximální úroveň stromu
              if (simul.step%simul.graph_refresh==0)
                if (kvad->level>simul.data[7]) simul.data[7]=kvad->level;

              Calcul_Center(kvad,cell,cell->way);

              cell=cell->child[cell->way];    //vstup do nového potomka
              cell->way=0;
              Split_List(cell);
            }
          if (cell->mass[cell->way]==1)
            {
              Add_To_Particle_List(cell->child[cell->way]);
              cell->child[cell->way]->level=cell->level+1;
              cell->child[cell->way]->parent=cell;
              Calcul_Center(cell->child[cell->way],cell,cell->way);
            }
        }

    Calcul_Momentum(cell);
    cell=cell->parent;
  }while(cell!=NULL);
}