firemodels / fds

Fire Dynamics Simulator
https://pages.nist.gov/fds-smv/
Other
642 stars 616 forks source link

aspiration_detector and FED verification cases broken #973

Closed gforney closed 9 years ago

gforney commented 9 years ago
I think these cases broke because of changes in definitions for species. 

Original issue reported on code.google.com by mcgratta on 2010-01-27 16:08:51

gforney commented 9 years ago
I just posted a new read which should hopefully fix both of these.

Original issue reported on code.google.com by drjfloyd on 2010-01-27 16:42:27

gforney commented 9 years ago
Looks like aspiration_detector is working, but FED still doesn't look right. Let 
Simo take a look. Maybe I don't know what to expect from the case.

Original issue reported on code.google.com by mcgratta on 2010-01-27 17:20:19

gforney commented 9 years ago
I'll try and find time to look at it later today.

Original issue reported on code.google.com by drjfloyd on 2010-01-27 17:38:59

gforney commented 9 years ago
There are a few issues related to changes in the species definitions.  A couple were
quick fixes, but another involves the FED being tightly coupled mixture fraction only
usage. Since in the test case CO_YIELD is zero, there wasn't a CO_INDEX (that has
been fixed) but now there also isn't an RCON_MF(CO_INDEX).  I think I have a fix for
that though.

Original issue reported on code.google.com by drjfloyd on 2010-01-27 22:49:15

gforney commented 9 years ago
Sorry Jason, I think I don't understand what you mean by "FED being tightly coupled
mixture fraction only usage."

Original issue reported on code.google.com by shostikk on 2010-01-28 06:34:22

gforney commented 9 years ago
The changes I was making was in part to try and continue to make the various features
of FDS usable for either defined SPEC or mixture fraction.  The FED routine is making
use of variables solely defined for mixture fraction (RCON_MF) and I just need to
make some changes in how that array is created / how the FED routine accesses it.

Original issue reported on code.google.com by drjfloyd on 2010-01-28 13:06:49

gforney commented 9 years ago
If FED routine is made special by being solely dependent on mixture fraction, why not
change it more general? There is no reason why we could not allow FED computation for
finite rate computations as well, if that makes it easier to program. 

As the intent is to generalize FED routine to consider other species as well, it
might be good if we provided utility functions for getting the species volume
fraction for any species GET_VOLUME_FRACTION(Y_IN,SPECIES_INDEX,VOL_FRAC).

Original issue reported on code.google.com by shostikk on 2010-01-28 13:18:43

gforney commented 9 years ago
My plan was to modify the FED routine and the indexing for RCON to make it more
general.  The utility function is an excellent idea.

Original issue reported on code.google.com by drjfloyd on 2010-01-28 13:23:57

gforney commented 9 years ago
I am adding Timo to the cc list just in case he does not get these posts via email.

This might effect his Evac routines.

Original issue reported on code.google.com by mcgratta on 2010-01-28 13:30:23

gforney commented 9 years ago
I don't think I am going to be touching anything other than the FED function in
func.f90, so hopefully I don't break the rest of evac.

Original issue reported on code.google.com by drjfloyd on 2010-01-28 13:32:56

gforney commented 9 years ago
Hi Jason,

below is the part of evac.f90, which might need
some modifications:

    YY_GET(:) = MESHES(nom)%YY(I,J,K,:)
    CALL GET_MASS_FRACTION(YY_GET,SOOT_INDEX,Y_MF_INT)
    soot_dens = Y_MF_INT*MESHES(nom)%RHO(I,J,K)*1.E6_EB
    fed_indx = FED(YY_GET,MESHES(nom)%RSUM(I,J,K))
    gas_temp  = MESHES(nom)%TMP(I,J,K)
    rad_flux = MAX(MESHES(nom)%UII(I,J,K)/4.0_EB,SIGMA*TMPA4)

So, the FED should work, the the FDS-function (in func.f90?)
is working. But how about soot?

Timo

Original issue reported on code.google.com by tkorhon1 on 2010-01-28 13:44:40

gforney commented 9 years ago
Posted a new read and func.  The FED seems to be giving reasonable output in the
_devc.csv file though I am not sure what the desired answer is for the various tests.

Original issue reported on code.google.com by drjfloyd on 2010-01-28 13:45:55

gforney commented 9 years ago
I'll go through evac.f90 and look for uses of _INDEX and make changes where needed.

Original issue reported on code.google.com by drjfloyd on 2010-01-28 13:48:05

gforney commented 9 years ago
Looked like just the one use of a mixture fraction index in evac.f90.  A new evac has
been posted.  

Original issue reported on code.google.com by drjfloyd on 2010-01-28 13:54:31

gforney commented 9 years ago
Hi Jason,

now I get:

forrtl: severe (157): Program Exception - access violation
Image              PC        Routine            Line        Source
fds5.exe           00746EF6  _READ_INPUT_mp_PR        2505  read.f90
fds5.exe           007264D7  _READ_INPUT_mp_RE         118  read.f90
fds5.exe           0086A75D  _MAIN__                   119  main.f90

So I put some write statements and it seems that
N_Y_ARRAY is not defined in that routine:

ALLOCATE(MU_TMP(N_Y_ARRAY))
MU_TMP = 0._EB
ALLOCATE(CP_TMP(N_Y_ARRAY))
CP_TMP = 0._EB
ALLOCATE(H_TMP(N_Y_ARRAY))
H_TMP = 0._EB
ALLOCATE(K_TMP(N_Y_ARRAY))

The input file (attached) should have:

 Molecular weights: air 29 g/mol, nitrogen 28 g/mol,
                    co 28 g/mol, co2 44 g/mol, o 32 g/mol
 concentrations:

    CO2: 0.000 mol/mol
    CO:  0.001 mol/mol (1000 ppm)
    O2:  0.210 mol/mol
    N2:  0.790 mol/mol

    Mass Fractions (Rest is 'air': 0.21 mol/mol O2 + 0.79 mol/mol N2)
    CO2: 0.000000 g/g
    CO:  0.000971 g/g
    O2:  0.000000 g/g
    N2:  0.000000 g/g

  This produces FDS output (_devc.csv):
  mol/mol     mol/mol       mol/mol
  CO2         CO            O2
  0.00E+00 1.00E-03 2.07E-01

  Note: The above 'hand calculations' were done using approximate
  molecular weights and air density, so the FDS calculated gas
  densities are not exactly the ones that was 'wanted', but this
  does not matter.

&SPEC ID='CARBON DIOXIDE',  MASS_FRACTION_0=0.0 /
&SPEC ID='CARBON MONOXIDE', MASS_FRACTION_0=0.00097090 /
&SPEC ID='NITROGEN',        MASS_FRACTION_0=0.0 /

Ciao,
Timo

Original issue reported on code.google.com by tkorhon1 on 2010-01-28 14:43:35


gforney commented 9 years ago
The FED verification test gives exactly the correct answer.

Original issue reported on code.google.com by shostikk on 2010-01-28 14:52:05

gforney commented 9 years ago
Timo,  I'll look in the undefined error.  Thanks.

Original issue reported on code.google.com by drjfloyd on 2010-01-28 15:13:58

gforney commented 9 years ago
Third time's the charm, or so I hope.  A new read.f90 fixes the errors found by Timo.

Original issue reported on code.google.com by drjfloyd on 2010-01-28 16:46:15

gforney commented 9 years ago
Hi Jason,

You can not still rest on this issue ;-) The attached file
has just fire stuff, no evacuation at all.

forrtl: severe (408): fort: (2): Subscript #1 of the array NU has value 6 which
is greater than the upper bound of 5

Image              PC        Routine            Line        Source
fds5_debug.exe     00F3B847  _READ_INPUT_mp_PR        2229  read.f90
fds5_debug.exe     00EE3A94  _READ_INPUT_mp_RE         118  read.f90
fds5_debug.exe     0132A8ED  _MAIN__                   118  main.f90

Well, fourth time's the charm...

Ciao,
Timo

Original issue reported on code.google.com by tkorhon1 on 2010-01-29 08:37:10


gforney commented 9 years ago
Posted another read.f90 Hopefully this does it.  

Original issue reported on code.google.com by drjfloyd on 2010-01-29 13:13:54

gforney commented 9 years ago
Hi Jason,

you should probably do the same thing for dump.f90:

 Fire Dynamics Simulator

 Compilation Date : Fri, 29 Jan 2010

 Version: 5.4.3; MPI Disabled; OpenMP Disabled
 SVN Revision No. : 5510

 Job TITLE        : Verification test for FED calculation
 Job ID string    : fed_verification

forrtl: severe (408): fort: (2): Subscript #1 of the array NU has value 6 which
is greater than the upper bound of 5

Image              PC        Routine            Line        Source
fds5_debug.exe     011D6155  _DUMP_mp_INITIALI        2148  dump.f90
fds5_debug.exe     01158195  _DUMP_mp_INITIALI         399  dump.f90
fds5_debug.exe     0133766C  _MAIN__                   363  main.f90

Ciao,
Timo

Original issue reported on code.google.com by tkorhon1 on 2010-01-29 13:50:58

gforney commented 9 years ago
Fixed that.  Wish I new why my compiler is giving an error for that. I have the
undefined variable check on.  

Original issue reported on code.google.com by drjfloyd on 2010-01-29 13:58:23

gforney commented 9 years ago

forrtl: warning (402): fort: (1): In call to FED, an array temporary was created
 for argument #1

   CASE(109)  ! FED
      YY_GET(:) = YY(II,JJ,KK,:)
      GAS_PHASE_OUTPUT = FED(YY_GET,RSUM(II,JJ,KK))

Added YY_GET, let's see, if that helps. I'll try next to run
my FDS+Evac test cases for FED.

Yes, fed_verification.fds seems to run now.
(I just committed new dump.f90. Well, also init.f90,
but that was not for this issue.)

Timo

Original issue reported on code.google.com by tkorhon1 on 2010-01-29 15:31:43

gforney commented 9 years ago
I modified evac.f90 a little bit and changed divg.f90 also,
because the pressure_loop stuff broke something. Evacuation
meshes can not have pressure zone loops, so added couple
if evacuation_only cycle things.

Now my fire+evacuation FED test cases run nicely. So, this
issue is now Verified.

Timo

Original issue reported on code.google.com by tkorhon1 on 2010-01-29 16:12:20