Changeset 68484 in spip-zone


Ignore:
Timestamp:
Dec 19, 2012, 3:18:59 PM (8 years ago)
Author:
dorch@…
Message:

Corrections sur la hauteur conjuguée et traductions

Location:
_plugins_/hydraulic/trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/hydraulic/trunk/formulaires/calcul_normale_critique.php

    r60941 r68484  
    237237    $oParam= new cParam($Cr_rKs, $Cr_rQ, $Cr_rIf, $Param_calc_rPrec, $Cr_rYB);
    238238    switch($ncTypeSection) {
    239             case 'FT':
    240                 include_spip('hyd_inc/sectionTrapez.class');
    241                 $oSection=new cSnTrapez($oLog,$oParam,$FT_rLargeurFond,$FT_rFruit);
    242                 break;
    243 
    244             case 'FR':
    245                 include_spip('hyd_inc/sectionRectang.class');
    246                 $oSection=new cSnRectang($oLog,$oParam,$FR_rLarg);
    247                 break;
    248 
    249             case 'FC':
    250                 include_spip('hyd_inc/sectionCirc.class');
    251                 $oSection=new cSnCirc($oLog,$oParam,$FC_rD);
    252                 break;
    253 
    254             case 'FP':
    255                 include_spip('hyd_inc/sectionPuiss.class');
    256                 $oSection=new cSnPuiss($oLog,$oParam,$FP_rCoef,$FP_rLargBerge);
    257                 break;
    258 
    259             default:
    260                 include_spip('hyd_inc/sectionTrapez.class');
    261                 $oSection=new cSnTrapez($oLog,$oParam,$FT_rLargeurfond,$FT_rFruit);
     239                case 'FT':
     240                        include_spip('hyd_inc/sectionTrapez.class');
     241                        $oSection=new cSnTrapez($oLog,$oParam,$FT_rLargeurFond,$FT_rFruit);
     242                        break;
     243
     244                case 'FR':
     245                        include_spip('hyd_inc/sectionRectang.class');
     246                        $oSection=new cSnRectang($oLog,$oParam,$FR_rLargeurBerge);
     247                        break;
     248
     249                case 'FC':
     250                        include_spip('hyd_inc/sectionCirc.class');
     251                        $oSection=new cSnCirc($oLog,$oParam,$FC_rD);
     252                        break;
     253
     254                case 'FP':
     255                        include_spip('hyd_inc/sectionPuiss.class');
     256                        $oSection=new cSnPuiss($oLog,$oParam,$FP_rCoef,$FP_rLargBerge);
     257                        break;
     258
     259                default:
     260                        include_spip('hyd_inc/sectionTrapez.class');
     261                        $oSection=new cSnTrapez($oLog,$oParam,$FT_rLargeurfond,$FT_rFruit);
    262262
    263263    }
     
    294294    }
    295295    else {
    296         $tVarCal = array('Hs', 'Hsc', 'B', 'P', 'S', 'R', 'V', 'Fr', 'Yc', 'Yn', 'Yf', 'Yt', 'Yco', 'J', 'I-J', 'Imp', 'Tau0');
     296                switch($ncTypeSection) {
     297                        case 'FR':
     298                                $tVarCal = array('Hs', 'Hsc', 'B', 'P', 'S', 'R', 'V', 'Fr', 'Yc', 'Yn', 'Yf', 'Yt', 'Yco', 'J', 'I-J', 'Imp', 'Tau0');
     299                                break;
     300                        default:
     301                                // Le calcul de la hauteur conjuguée n'est pas OK pour les sections autres que rectangulaire
     302                                $tVarCal = array('Hs', 'Hsc', 'B', 'P', 'S', 'R', 'V', 'Fr', 'Yc', 'Yn', 'Yf', 'Yt', 'J', 'I-J', 'Imp', 'Tau0');
     303                }
    297304    }
    298305
    299306    $max += $pas/2;
    300307
    301     $bNoCache = false; // true pour débugage
     308    $bNoCache = true; // true pour débugage
    302309    if(!$bNoCache && is_file(HYD_CACHE_DIRECTORY.$CacheFileName)) {
    303310        // On récupère toutes les données dans un cache déjà créé
  • _plugins_/hydraulic/trunk/formulaires/courbe_remous.php

    r68473 r68484  
    108108    $datas = array();
    109109    $tChOblig= champs_obligatoires();
    110    
     110
    111111    // On vérifie que les champs obligatoires sont bien là :
    112112    foreach($tChOblig as $obligatoire) {
     
    188188    $oParam= new cParam($Caract_bief_rKs,$Cond_lim_rQ,$Caract_bief_rIf,$Param_calc_rPrec,$Caract_bief_rYBerge,$Cond_lim_rYaval,$Param_calc_rDx,$Caract_bief_rLong);
    189189
    190         // Création d'un objet de type Section selon la section choisie. 
     190        // Création d'un objet de type Section selon la section choisie.
    191191    switch($crTypeSection) {
    192192        case 'FT':
     
    197197        case 'FR':
    198198            include_spip('hyd_inc/sectionRectang.class');
    199             $oSection=new cSnRectang($oLog,$oParam,$FR_rLarg);
     199            $oSection=new cSnRectang($oLog,$oParam,$FR_rLargeurBerge);
    200200            break;
    201201
     
    207207        case 'FP':
    208208            include_spip('hyd_inc/sectionPuiss.class');
    209             $oSection=new cSnPuiss($oLog,$oParam,$FP_rCoef,$FP_rLargBerge);
     209            $oSection=new cSnPuiss($oLog,$oParam,$FP_rCoef,$FP_rLargeurBerge);
    210210            break;
    211211
  • _plugins_/hydraulic/trunk/hyd_inc/section.class.php

    r68473 r68484  
    462462    * @return tirant d'eau conjugué
    463463    */
    464     private function CalcYco() {
     464    protected function CalcYco() {
    465465        $oHautConj= new cHautConjuguee($this, $this->oP);
    466         if(!$Yco = $oHautConj->Newton($this->CalcGeo('Yc')) or !$oHautConj->HasConverged()) {
     466        // Choisir une valeur initiale du bon côté de la courbe
     467        if($this->Calc('Fr') < 1) {
     468                        // Ecoulement fluvial, on cherche la conjuguée à partir du tirant d'eau torrentiel
     469                        $rY0 = $this->Calc('Yt');
     470                }
     471                else {
     472                        // Ecoulement torrentiel, on cherche la conjuguée à partir du tirant d'eau fluvial
     473                        $rY0 = $this->Calc('Yf');
     474                }
     475        if(!$Yco = $oHautConj->Newton($rY0) or !$oHautConj->HasConverged()) {
    467476            $this->oLog->Add(_T('hydraulic:h_conjuguee').' : '._T('hydraulic:newton_non_convergence'));
    468477        }
     
    701710 */
    702711class cHautConjuguee extends acNewton {
    703     private $rY; // Tirant d'eau connu
    704     private $rS2; // 1/S^2 associé au tirant d'eau connu
    705     private $oSn; // Section contenant les données de la section avec la hauteur à calculer
    706     private $rG; // Constante de gravité
    707     private $rQ; // débit
     712    /** Tirant d'eau connu */
     713    private $rY;
     714    /** 1/S^2 associé au tirant d'eau connu */
     715    private $rS2;
     716    /** Section contenant les données de la section avec la hauteur à calculer */
     717    private $oSn;
     718    /** Constante de gravité */
     719    private $rG;
     720    /** Carré du débit */
     721    private $rQ2;
     722    /** Surface hydraulique associée au tirant d'eau connu */
     723    private $rS;
     724    /** SYg associée au tirant d'eau connu */
     725    private $rSYg;
    708726
    709727    /**
     
    715733        parent::__construct($oP);
    716734        $this->rY = $oSn->rY;
    717         $this->rQ = $oP->rQ;
    718         if($oSn->Calc('S')>0) {
    719             $this->rdV = - $this->rQ * $oSn->Calc('dS') * pow($oSn->Calc('S'),-2);
    720         }
    721         else {
    722             $this->rdV = INF;
    723         }
     735        $this->rQ2 = pow($oP->rQ,2);
    724736        $this->oSn = clone $oSn;
    725737        $this->rG = $oP->rG;
    726         $this->rV = $oSn->Calc('V');
     738        $this->rS = $oSn->Calc('S');
    727739        $this->rSYg = $oSn->Calc('SYg');
    728         $this->rdSYg = $oSn->Calc('dSYg');
    729740    }
    730741
     
    734745     */
    735746    protected function CalcFn($rX) {
    736 
    737         // Calcul de la fonction
    738         $rFn = $this->rQ * ($this->rV - $this->oSn->Calc('V',$rX));
    739         $rFn += $this->rG * ($this->rSYg - $this->oSn->Calc('SYg',$rX));
     747        // Réinitialisation des paramètres hydrauliques de oSn avec l'appel $this->oSn->Calc('S',$rX)
     748        if($this->rS > 0 && $this->oSn->Calc('S',$rX) > 0) {
     749                        $rFn = $this->rQ2 * (1 / $this->rS - 1 / $this->oSn->Calc('S'));
     750                        $rFn += $this->rG * ($this->rSYg - $this->oSn->Calc('SYg'));
     751                }
     752                else {
     753                        $rFn = -INF;
     754                }
    740755        spip_log('cHautConjuguee:CalcFn('.$rX.')='.$rFn,'hydraulic');
    741756        return $rFn;
     
    748763    protected function CalcDer($rX) {
    749764        // L'initialisation a été faite lors de l'appel à CalcFn
    750         if($this->oSn->Calc('S')!=0) {
    751             $rDer = $this->rQ * ($this->rdV + $this->rQ * $this->oSn->Calc('dS') * pow($this->oSn->Calc('S'),-2));
    752             $rDer += $this->rG * ($this->rdSYg - $this->oSn->Calc('dSYg',$rX));
     765        if($this->rS > 0 && $this->oSn->Calc('S') > 0) {
     766            $rDer = $this->rQ2 * $this->oSn->Calc('dS') * pow($this->oSn->Calc('S'),-2);
     767            $rDer += - $this->rG * $this->oSn->Calc('dSYg',$rX);
    753768        }
    754769        else {
  • _plugins_/hydraulic/trunk/hyd_inc/sectionCirc.class.php

    r68473 r68484  
    180180        $sin = sin($this->Calc('Alpha'));
    181181        $SYg = $this->Calc('dAlpha') * $cos;
    182         $SYg += - $this->Calc('dAlpha') * $cos * pow($sin,2)
     182        $SYg += - $this->Calc('dAlpha') * $cos * pow($sin,2);
    183183        $SYg += - $this->Calc('dAlpha') * $cos + $this->Calc('Alpha') * $this->Calc('dAlpha') * $sin;
    184184        $SYg = 3 *pow($this->rD,3) / 8 * $SYg;
  • _plugins_/hydraulic/trunk/hyd_inc/sectionRectang.class.php

    r68473 r68484  
    3030 */
    3131class cSnRectang extends acSection {
    32        
     32
    3333    function __construct(&$oLog,&$oP,$rLargeurFond) {
    3434        $this->rLargeurBerge = $rLargeurFond;
     
    4545
    4646    /**
    47      * Calcul de la distance du centre de gravité de la section à la surface libre.
    48      * @return Distance du centre de gravité de la section à la surface libre
     47     * Calcul de la distance du centre de gravité de la section à la surface libre
     48     * multiplié par la section
     49     * @return SYg
    4950     */
    5051    protected function CalcSYg() {
     
    5253    }
    5354
     55    /**
     56     * Calcul de la dérivée de la distance du centre de gravité de la section à la surface libre
     57     * multiplié par la section
     58     * @return Dérivée de SYg par rapport à Y
     59     */
     60    protected function CalcSYgder() {
     61        return parent::CalcSYgder($this->rY);
     62    }
     63
     64   /**
     65    * Calcul du tirant d'eau conjugué avec la formule analytique pour la section rectangulaire
     66    * @return tirant d'eau conjugué
     67    */
     68    protected function CalcYco() {
     69        return $this->rY*(sqrt(1 + 8 * pow($this->Calc('Fr'),2)) - 1) / 2;
     70    }
     71
    5472}
    5573?>
  • _plugins_/hydraulic/trunk/lang/hydraulic_en.php

    r60821 r68484  
    1313    'calculer_remous' => "Calculate the backwater curve",
    1414    'caract_bief'     => "Features reach",
    15     'coef_strickler'  => "Strickler coefficient (SI)",
     15    'coef_strickler'  => "Strickler coefficient (m<sup>1/3</sup>s<sup>-1</sup>)",
    1616    'condition_limite'=> "Boundary conditions",
    1717    'calcul_fluvial'  => "Downstream boundary condition >= Critical elevation : calculation of subcritical part from downstream",
     
    2424    'choix_section'   => "Choice of section",
    2525    'caract_globale'  => "Overall characteristics",
    26     'charge_spe'      => "",
    27     'choix_donnee_calc' => "",
    28     'charge_critique' => "",
    29     'cote_eau'        => "",
     26    'charge_spe'      => "Specific head (m)",
     27    'choix_donnee_calc' => "Choice of the data to compute",
     28    'charge_critique' => "Critical head (m)",
     29    'cote_eau'        => "Water level (m)",
     30        'coef'                    => "Coefficient",
     31    'cunge'           => "Cunge 1980",
    3032    // D
    31     'debit_amont'     => "Upstream flow (m3/s)",
     33    'debit_amont'     => "Upstream flow (m<sup>3</sup>/s)",
    3234    'def_section_trap'=> "Definition of trapezoidal section",
    3335    'def_section_rect'=> "Definition of rectangular section",
     
    3537    'def_section_parab'=> "Definition of parabolic section",
    3638    'diametre'        => "Diameter (m)",
    37         'donnee_calc'     => "",
    38     'debit'           => "",
     39        'donnee_calc'     => "Data to compute",
     40    'debit'           => "Flow (m<sup>3</sup>/s)",
    3941     // F
     42    'flag_erreur_calcul'=> "Calculation error",
     43    'flag_débit_nul'    => "No flow",
     44    'flag_libre_den'    => "Libre dénoyé",
     45    'flag_libre_noy'    => "Libre noyé",
     46    'flag_charge_den'   => "En charge dénoyé",
     47    'flag_charge_noy_part'=> "En charge partiellement noyé",
     48    'flag_charge_noy_tot' => "En charge totalement noyé",
     49    'flag_surverse_den' => "Surverse dénoyée",
     50    'flag_surverse_noy' => "Surverse noyée",
    4051    'fond'            => "Bottom",
    41     'fruit'           => "Slope (m/m)",
     52    'fruit'           => "Bank slope (m/m)",
    4253    'fixer_val'       => "Fixed parameter",
    4354    'fonte_beton_corrosive' =>"Unlined cast iron - Coarse concrete (corrosive water)",
     
    4657    'fonte_revt_bitume' => "Cast iron or steel coating bitumen - Concrete centrifuged",
    4758    'fonte_revt_centrifuge' => "Cast iron or steel coating centrifuged",
    48         'froud'           => "",
    49     'force_tract'     => "",
     59        'froud'           => "Froude number",
     60    'force_tract'     => "Tractive force (Pa)",
    5061    // H
    5162    'h_amont_imposee' => "Water level imposed at the upstream (m)",
     
    5364    'h_berge'         => "Embankment elevation (m)",
    5465    'h_critique'      => "Critical elevation",
    55     'h_normale'       => "Normal elevation",
     66    'h_normale'       => "Normal elevation"
     67,   'h_pelle'         => "Gate elevation (m)",
    5668        //I
    57     'impulsion'       => "",
     69    'impulsion'       => "Impulse (N)",
    5870    // L
    5971    'largeur_fond'    => "Width at bottom (m)",
     
    6375    'log_titre'       => "Calculation's log",
    6476    'longueur_bief'   => "Length of reach (m)",
    65         'larg_miroir'     => "",
     77        'larg_miroir'     => "Surface width (m)",
     78        'loi_debit'       => "Flow equation",
    6679    //N
    6780    'newton_non_convergence' => "Non-convergence of the calculation (Newton's method)",
    6881    // O
    6982    'ordonnee'        => "Ordinate",
     83    'or_cemagref88'   => "Déversoir/Orifice Cemagref 88",
     84    'or_cemagref02'   => "Déversoir/Orifice Cemagref 02",
    7085    // P
    7186    'param_calcul'    => "Calculation parameters",
     87    'param_fixes'     => "Fixed parameters",
    7288    'pas_ajustement'  => "adjustement of space step to ",
    7389    'pas_discret'     => "Discretization step (m)",
     
    8399    'param_J' => "J: Head drop (m)",
    84100    'param_Lg' => "Lg: Pipe length (m)",
     101    'param_L'         => "Largeur (m)",
     102    'param_W'         => "Ouverture (m)",
     103    'param_C'         => "Coefficient de débit",
     104    'param_CS'        => "Coefficient de débit de la surverse",
     105    'param_H'         => "Hauteur de la pelle (surverse)",
     106    'param_LF'        => "Largeur au fond (m)",
     107    'param_CR'        => "Coefficient de débit partie rectangulaire",
     108    'param_CR'        => "Coefficient de débit partie triangulaire",
     109    'param_F'     => "Fruit (m/m)",
     110    'param_ZM'        => "Cote de l'eau à l'amont (m)",
     111    'param_ZV'        => "Côte de l'eau à l'aval (m)",
    85112    'precision' => "Display accuracy (m)",
    86         'perim_mouille'   => "",
    87     'perte_charge'    => "",
     113        'perim_mouille'   => "Wetted perimeter",
     114    'perte_charge'    => "Head loss (m)",
    88115    //R
    89     'rayon_hyd'       => "",
    90     'rugosite_nc'     => "",
     116    'rayon_hyd'       => "Hydraulic radius",
     117    'rugosite_nc'     => "Roughness (Strickler m<sup>1/3</sup>s<sup>-1</sup>)",
    91118    //S
    92119    'saisie_erreur'   => "Your entry contains errors!",
     
    95122    'section_circ'    => "Circular Section",
    96123    'section_parab'   => "Parabolic Section",
    97         'surf_mouille'    => "",
     124    'seuil_rect'      => "Seuil Rectangulaire",
     125    'seuil_trap'      => "Seuil Trapézoïdal",
     126        'surf_mouille'    => "Wetted area m<sup>2</sup>",
     127    's_cemagref88'    => "Vanne de fond/Seuil Cemagref 88",
     128    's_denoye'        => "Seuil dénoyé",
     129    's_noye'          => "Seuil noyé",
     130    's_cemagref02'    => "Vanne de fond/Seuil Cemagref 02",
    98131    //T
    99132    'tirant_eau'         => "Draft (m)",
     
    102135    'tuyau_lisse2' => "Hydraulically smooth pipe - 0.25 &#8804; D &#8804; 1 ",
    103136    'type_section' => "Type of section",
    104         'tirant_eau_crit' => "",
    105     'tirant_eau_norm' => "",
    106     'tirant_eau_fluv' => "",
    107     'tirant_eau_torr' => "",
    108     'tirant_eau_conj' => "",
     137        'tirant_eau_crit' => "Critical depth (m)",
     138    'tirant_eau_norm' => "Normal depth (m)",
     139    'tirant_eau_fluv' => "supercritical depth (m)",
     140    'tirant_eau_torr' => "subcritical depth (m)",
     141    'tirant_eau_conj' => "Conjugate depth (m)",
    109142    //V
    110143    'valeur_positive' => "This value must be strictly positive",
    111144    'valeur_positive_nulle' => "",
     145    'valeurs'         => "Valeurs",
    112146    'val_min'         => "From minimum value",
    113147    'val_max'         => "To maximum value",
     148    'vanne_rect'      => "Vanne Rectangulaire",
     149    'vanne_trap'      => "Vanne Trapézoïdale",
    114150    'varier_val'      => "Parameter to vary ",
    115         'vit_moy'         => "",
    116     'var_lin'         => "",
     151        'vit_moy'         => "Average speed (m/s)",
     152    'var_lin'         => "Linear variation of specific head (m/m)",
     153    'v_denoye'        => "Vanne dénoyé",
     154    'v_noye'          => "Vanne noyé",
    117155
    118156);
  • _plugins_/hydraulic/trunk/lang/hydraulic_fr.php

    r68473 r68484  
    66    'arret_calcul'    => "Arrêt du calcul : Hauteur critique atteinte à l'abscisse",
    77    'acier_lamine'    => "Acier laminé - Béton lisse",
    8     //B
     8    //
    99    'berge'           => "Berge",
    1010    // C
     
    1313    'calculer_remous' => "Calculer la courbe de remous",
    1414    'caract_bief'     => "Caractéristiques du bief",
    15     'coef_strickler'  => "Coefficient de Strickler (SI)",
     15    'coef_strickler'  => "Coefficient de Strickler (m<sup>1/3</sup>s<sup>-1</sup>)",
    1616    'condition_limite'=> "Conditions aux limites",
    1717    'calcul_fluvial'  => "Condition limite aval >= Hauteur critique : calcul de la partie fluviale à partir de l'aval",
     
    3131    'cunge'           => "Cunge 1980",
    3232    // D
    33     'debit_amont'     => "Débit amont (m³/s)",
     33    'debit_amont'     => "Débit amont (m<sup>3</sup>/s)",
    3434    'def_section_trap'=> "Définition de la section trapézoïdale",
    3535    'def_section_rect'=> "Définition de la section rectangulaire",
     
    3838    'diametre'        => "Diamètre (m)",
    3939    'donnee_calc'     => "Donnée à calculer",
    40     'debit'           => "Débit (m³/s)",
     40    'debit'           => "Débit (m<sup>3</sup>/s)",
    4141    // F
    4242    'flag_erreur_calcul'=> "Erreur de calcul",
     
    5050    'flag_surverse_noy' => "Surverse noyée",
    5151    'fond'            => "Fond",
    52     'fruit'           => "Fruit (m/m)",
     52    'fruit'           => "Fruit des berges (m/m)",
    5353    'fixer_val'       => "Paramètre fixé",
    5454    'fonte_beton_corrosive' =>"Fonte ou acier non revêtus - Béton grossier (eau corrosive)",
     
    116116    //R
    117117    'rayon_hyd'       => "Le rayon hydraulique (m)",
    118     'rugosite_nc'     => "Rugosité (SI)",
     118    'rugosite_nc'     => "Rugosité (Strickler en m<sup>1/3</sup>s<sup>-1</sup>)",
    119119    //S
    120120    'saisie_erreur'   => "Votre saisie contient des erreurs !",
     
    125125    'seuil_rect'      => "Seuil Rectangulaire",
    126126    'seuil_trap'      => "Seuil Trapézoïdal",
    127     'surf_mouille'    => "La surface mouillée (m²)",
     127    'surf_mouille'    => "La surface mouillée (m<sup>2</sup>)",
    128128    's_cemagref88'    => "Vanne de fond/Seuil Cemagref 88",
    129129    's_denoye'        => "Seuil dénoyé",
     
    149149    'val_max'         => "A la valeur maximum",
    150150    'val_min'         => "De la Valeur minimum",
    151     'val_max'         => "A la Valeur maximum",
    152151    'vanne_circ'      => "Vanne Circulaire",
    153152    'vanne_rect'      => "Vanne Rectangulaire",
Note: See TracChangeset for help on using the changeset viewer.