Changeset 103504 in spip-zone


Ignore:
Timestamp:
Mar 25, 2017, 9:03:07 AM (3 years ago)
Author:
dorch@…
Message:

Section paramétrée : bug de calcul de la hauteur conjuguée pour différents tirants d'eau

Location:
_plugins_/hydraulic/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/hydraulic/trunk/hyd_inc/form_calcul_section.class.php

    r96562 r103504  
    8989                }
    9090                else {
    91                         switch($choix_section) {
    92                                 case 'FR':
     91                        //~ switch($choix_section) {
     92                                //~ case 'FR':
    9393                                $tVarCal = array('Hs', 'Hsc', 'B', 'P', 'S', 'R', 'V', 'Fr', 'Yc', 'Yn', 'Yf', 'Yt', 'Yco', 'J', 'I-J', 'Imp', 'Tau0');
    94                                 break;
    95                                 default:
    96                                 // Le calcul de la hauteur conjuguée n'est pas OK pour les sections autres que rectangulaire
    97                                 $tVarCal = array('Hs', 'Hsc', 'B', 'P', 'S', 'R', 'V', 'Fr', 'Yc', 'Yn', 'Yf', 'Yt', 'J', 'I-J', 'Imp', 'Tau0');
    98                         }
     94                                //~ break;
     95                                //~ default:
     96                                //~ // Le calcul de la hauteur conjuguée n'est pas OK pour les sections autres que rectangulaire
     97                                //~ $tVarCal = array('Hs', 'Hsc', 'B', 'P', 'S', 'R', 'V', 'Fr', 'Yc', 'Yn', 'Yf', 'Yt', 'J', 'I-J', 'Imp', 'Tau0');
     98                        //~ }
    9999                }
    100100
    101101                $tRes = array(); // Tableau des résultats (ordonnées)
    102102                $tAbs = array(); // Tableau des abscisses
     103                if(self::DBG) spip_log($this->oSn,'hydraulic',_LOG_DEBUG);
     104                if(self::DBG) spip_log($tVarCal,'hydraulic',_LOG_DEBUG);
     105                if(self::DBG) spip_log("min=$min max=$max pas=$pas",'hydraulic',_LOG_DEBUG);
     106                $bF = true;
    103107                for($i = $min; $i <= $max; $i+= $pas){
    104108                        $this->oSn->Reset(true);
     
    106110                        foreach($tVarCal as $sCalc){
    107111                                $rY = $this->oSn->rY;
     112                                if(self::DBG) spip_log("i=$i Y=$rY Calc=$sCalc",'hydraulic',_LOG_DEBUG);
    108113                                if(!in_array($sCalc,array('Yn', 'Yc', 'Hsc'))){
    109114                                        $tRes[] = $this->oSn->Calc($sCalc);
     
    114119                                $this->oSn->rY = $rY;
    115120                        }
     121                        if(self::DBG & $bF) spip_log("i=$i Y=$rY",'hydraulic',_LOG_DEBUG);
     122                        $bF = false;
    116123                }
    117124                return array('abs'=>$tAbs,'res'=>$tRes,'tVarCal'=>$tVarCal);
  • _plugins_/hydraulic/trunk/hyd_inc/formulaire.abstract.class.php

    r103274 r103504  
    77 *******************************************************************************/
    88abstract class formulaire {
     9
     10        const DBG = true; /// Debuggage de la classe et des classes filles
    911
    1012        /***************************************************************************
     
    5658                $this->champs_fvc = $this->get_champs_fvc();
    5759                $this->champs = $this->get_champs();
    58                 spip_log($this->saisies,'hydraulic',_LOG_DEBUG);
    59                 spip_log($this->champs_fvc,'hydraulic',_LOG_DEBUG);
     60                if(self::DBG) spip_log($this->saisies,'hydraulic',_LOG_DEBUG);
     61                if(self::DBG) spip_log($this->champs_fvc,'hydraulic',_LOG_DEBUG);
    6062                include_spip('hyd_inc/log.class');
    6163                $this->oLog = new cLog();
     
    188190                $tChOblig = $this->champs_obligatoires();
    189191                $tChCalc = $this->champs_obligatoires(true);
    190                 spip_log($tChCalc,'hydraulic',_LOG_DEBUG);
     192                if(self::DBG) spip_log($tChCalc,'hydraulic',_LOG_DEBUG);
    191193                $choix_radio = array();
    192194                $tLib = array();
     
    236238
    237239                $this->data = $data;
    238                 spip_log($data,'hydraulic',_LOG_DEBUG);
     240                if(self::DBG) spip_log($data,'hydraulic',_LOG_DEBUG);
    239241        }
    240242
     
    303305                        $this->result = $this->calculer();
    304306                }
    305                 spip_log($this->result,'hydraulic',_LOG_DEBUG);
     307                if(self::DBG) spip_log($this->result,'hydraulic',_LOG_DEBUG);
    306308
    307309                // Affichage des résultats
     
    358360                        $tCnt[]=array('<b>'.$tLib[$data['ValCal']].'</b>','<b>'.format_nombre($tRes[0], $data['iPrec']).'</b>');
    359361                        if($tFlag) {
    360                                 spip_log($tFlag,'hydraulic.'._LOG_DEBUG);
     362                                if(self::DBG) spip_log($tFlag,'hydraulic.'._LOG_DEBUG);
    361363                                $tCnt[]= array(_T('hydraulic:type_ecoulement'),_T('hydraulic:flag_'.$tFlag[0]));
    362364                        }
  • _plugins_/hydraulic/trunk/hyd_inc/newton.class.php

    r96562 r103504  
    2525
    2626abstract class acNewton {
     27
     28        const DBG = false; /// Debuggage
     29
    2730        protected $rTol;
    2831        protected $rDx;
    29         private $iCpt=0;
    30         private $iCptMax=50;
     32        private $iCpt; /// n° itération Newton
     33        private $iCptMax=50; /// nb max itérations
    3134        private $rRelax=1; /// Coefficient de relaxation
    3235        private $rFnPrec=0; /// Mémorisation du Fn précédent pour détecter le changement de signe
     
    4144         */
    4245        function __construct(cParam $oP) {
    43                 $this->rTol=$oP->rPrec;
    44                 $this->rDx=$oP->rPrec/10;
     46                $this->rTol = $oP->rPrec;
     47                $this->rDx = $oP->rPrec / 10;
     48                $this->iCpt = 0;
    4549        }
    4650
     
    8084                $this->iCpt++;
    8185                $rFn=$this->CalcFn($rX);
    82                 //~ echo('</br>Newton '.$this->iCpt.' Relax='.$this->rRelax.'- f('.$rX.') = '.$rFn);
     86                if(self::DBG) spip_log('Newton '.$this->iCpt.' Relax='.$this->rRelax.'- f('.$rX.') = '.$rFn,'hydraulic.'._LOG_DEBUG);
    8387                if($this->FuzzyEqual($rFn) || $this->iCpt >= $this->iCptMax) {
    8488                        return $rX;
     
    8892                        //~ echo(' - f\' = '.$rDer);
    8993                        if($rDer!=0) {
    90                                 /*
    91                                 if($this->rRelax > 1) {
    92                                         // On réduit progressivement le coef de relaxation
    93                                         $this->rRelax *= 1;
    94                                 }
    95                                 */
    9694                                if($rFn < 0 xor $this->rFnPrec < 0) {
    9795                                        $this->nOscil++;
  • _plugins_/hydraulic/trunk/hyd_inc/section.class.php

    r103306 r103504  
    5353 */
    5454abstract class acSection {
    55         const DBG = false; /// Pour loguer les messages de debug de cette classe
     55        const DBG = false; /// Pour loguer les messages de debug de cette classe et ses filles
    5656
    5757        public $rY=0;          /// Tirant d'eau
     
    410410         */
    411411        protected function Calc_Yco() {
     412                // Mémorisation de Y avant l'appel au Newton
     413                $this->Swap(true);
     414                // Intanciation du Newton
    412415                $oHautConj= new cHautConjuguee($this, $this->oP);
    413416                // Choisir une valeur initiale du bon côté de la courbe
     
    423426                        $this->oLog->Add(_T('hydraulic:h_conjuguee').' : '._T('hydraulic:newton_non_convergence'),true);
    424427                }
     428                $this->Swap(false);
    425429                return $Yco;
    426430        }
     
    706710                        $rFn = -INF;
    707711                }
    708                 //~ if(self::DBG) spip_log('cHautConjuguee:CalcFn('.$rX.')='.$rFn,'hydraulic.'._LOG_DEBUG);
     712                if(self::DBG) spip_log('cHautConjuguee:CalcFn('.$rX.')='.$rFn,'hydraulic.'._LOG_DEBUG);
    709713                return $rFn;
    710714        }
     
    723727                        $rDer = -INF;
    724728                }
    725                 //~ if(self::DBG) spip_log('cHautConjuguee:CalcDer('.$rX.')='.$rDer,'hydraulic.'._LOG_DEBUG);
     729                if(self::DBG) spip_log('cHautConjuguee:CalcDer('.$rX.')='.$rDer,'hydraulic.'._LOG_DEBUG);
    726730                return $rDer;
    727731        }
  • _plugins_/hydraulic/trunk/plugin.xml

    r103454 r103504  
    88        <auteur>David Dorchies, Médéric Dulondel</auteur>
    99        <licence>GNU/GLP</licence>
    10         <version>0.10.1</version>
     10        <version>0.10.2</version>
    1111        <necessite id="lib:dist" src="http://www.jqplot.com/download/jquery.jqplot.1.0.8r1250.zip" />
    1212        <slogan>
Note: See TracChangeset for help on using the changeset viewer.