[go: up one dir, main page]

Menu

[r40]: / source / check-data.c  Maximize  Restore  History

Download this file

120 lines (106 with data), 4.3 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
/*
* Cooldt cool-down time calculator for multi-layers pipe
*
* Copyright 2010, 2013, 2014, Benjamin DEGLO DE BESSES. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY Benjamin DEGLO DE BESSES "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Benjamin DEGLO DE BESSES OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include "cooldt.h"
/*
* Check the input data values and return the number of errors if any
*/
int CheckInputData(FILE *fp, char * ErrorMessage, PipeProblem *PP)
{
int i ;
int NumberOfErrors ;
/* Start with code=0 mean no error */
NumberOfErrors = 0 ;
/* Check temperatures consistency */
if ( ! ( (PP->Tinitial > PP->Tambient) && ( PP->Tfinal > PP->Tambient ) && ( PP->Tinitial > PP->Tfinal ) ) )
{
NumberOfErrors++ ;
fprintf(fp, C_ERROR_INVALID_TEMPERATURES) ;
fprintf(fp, "\n") ;
sprintf(ErrorMessage, C_ERROR_INVALID_TEMPERATURES) ;
}
if ( ! ( ( PP->Hout >= 1.0 ) && ( PP->Hout <= 1.0e+5 ) ) )
{
NumberOfErrors++ ;
fprintf(fp, C_ERROR_INVALID_HEAT_COEF) ;
fprintf(fp, "\n") ;
sprintf(ErrorMessage, C_ERROR_INVALID_HEAT_COEF);
}
if ( ! ( ( PP->N >= 1 ) && ( PP->N <= MaxLayerNumber ) ) )
{
NumberOfErrors++ ;
fprintf(fp,C_ERROR_INVALID_NB_LAYER, MaxLayerNumber) ;
fprintf(fp, "\n") ;
sprintf(ErrorMessage,C_ERROR_INVALID_NB_LAYER, MaxLayerNumber) ;
}
/* Check layers data */
for( i=0 ; i <= PP->N ; i++ )
{
/* layer diameters values */
if ( ! ( ( PP->r[i] >= 0.0005 ) && ( PP->r[i] <= 5.0 ) ) )
{
NumberOfErrors++ ;
fprintf(fp, C_ERROR_INVALID_DIAMETER, i) ;
fprintf(fp, "\n") ;
sprintf(ErrorMessage,C_ERROR_INVALID_DIAMETER, i) ;
}
/* layer diameters consistency */
if( i>= 1 )
if ( ! ( PP->r[i] > PP->r[i-1] ) )
{
NumberOfErrors++ ;
fprintf(fp, C_ERROR_DIAMETER_MUST_INCREASES, i-1 , i) ;
fprintf(fp, "\n") ;
sprintf(ErrorMessage, C_ERROR_DIAMETER_MUST_INCREASES, i-1, i) ;
}
/* Layer conductivity */
if ( ! ( ( PP->k[i] >= 0.005 ) && ( PP->k[i] <= 2500.0 ) ) )
{
NumberOfErrors++ ;
fprintf(fp,C_ERROR_INVALID_CONDUCTIVITY, i) ;
fprintf(fp, "\n") ;
sprintf(ErrorMessage, C_ERROR_INVALID_CONDUCTIVITY, i) ;
}
/* Layer density */
if ( ! ( ( PP->d[i] >= 0.1 ) && ( PP->d[i] <= 10000.0 ) ) )
{
NumberOfErrors++ ;
fprintf(fp,C_ERROR_INVALID_DENSITY, i) ;
fprintf(fp, "\n") ;
sprintf(ErrorMessage, C_ERROR_INVALID_DENSITY, i) ;
}
/* Layer heat capacity */
if ( ! ( ( PP->Cp[i] >= 100. ) && ( PP->Cp[i] <= 12000.0 ) ) )
{
NumberOfErrors++ ;
fprintf(fp, C_ERROR_INVALID_HEAT_CAPACITY , i) ;
fprintf(fp, "\n") ;
sprintf(ErrorMessage, C_ERROR_INVALID_HEAT_CAPACITY, i) ;
}
}
return (NumberOfErrors) ;
}
/* End of check-data.c */