Calculettes pour l'hydraulique
form_cond_distri.class.php
Aller à la documentation de ce fichier.
1 <?php
2 include_spip('hyd_inc/formulaire.abstract.class');
3 
4 class form_cond_distri extends formulaire {
5 
6  // Tableau des caractéristiques des champs de saisie
7  public $saisies = array(
8  'fs_hydraulique' => array(
9  'caract_hydraulique',
10  array(
11  'Q' => array('param_Q', 3., 'op'),
12  'D' => array('param_D', 1.2, 'op'),
13  'J' => array('param_J', 0.6, 'op'),
14  'Lg' => array('param_Lg', 100., 'op'),
15  'nu' => array('param_nu', 1E-6, 'op')
16  ),
17  'cal'
18  ),
19  'fs_param_calc' => array(
20  'param_calcul',
21  array(
22  'rPrec' => array('precision',0.001,'op')
23  ),
24  'fix'
25  )
26  );
27 
28  // Définition de la variable à calculer par défaut
29  protected $sVarCal = 'J';
30 
31  // Définition du nombre de colonnes du formulaire
32  protected $nb_col = 5;
33 
34  protected function calculer() {
35  // On transforme les champs du tableau des données du formulaire en variables
36  extract($this->data, EXTR_OVERWRITE|EXTR_REFS);
37  $tRes = array(); // Tableau des résultats (ordonnées)
38  $tAbs = array(); // Tableau des abscisses
39 
40  $K = 0.3164 * pow(4,1.75)/(5.5*9.81*pow(3.1415,1.75)); // Constante de la formule
41 
42  for($i = $min; $i <= $max; $i+= $pas){
43  $tAbs[] = $i;
44  switch($ValCal){
45  case 'Q':
46  $tRes[] = pow($J/($K*pow($nu,0.25)*$Lg/pow($D,4.75)),1/1.75);
47  break;
48  case 'D':
49  $tRes[] = pow($J/($K*pow($nu,0.25)*pow($Q,1.75)*$Lg),1/4.75);
50  break;
51  case 'J':
52  $tRes[] = $K*pow($nu,0.25)*pow($Q,1.75)*$Lg/pow($D,4.75);
53  break;
54  case 'Lg':
55  $tRes[] = $J/($K*pow($nu,0.25)*pow($Q,1.75)/pow($D,4.75));
56  break;
57  case 'nu':
58  $tRes[] = pow($J/($K*pow($Q,1.75)*$Lg/pow($D,4.75)),1/0.25);
59  break;
60  }
61  }
62  return array('abs'=>$tAbs,'res'=>$tRes);
63  }
64 }
65 ?>