FLASH4.5 API

Generated from /asc/asci2/site/flashcode/secure/release_4p5/source/Multispecies/Multispecies_getSumFrac.F90 with ROBODoc v4.99.8 on Tue Mar 05 16:16:16 2019

TABLE OF CONTENTS


[Functions] source/Multispecies/Multispecies_getSumFrac

[top][index]

NAME

  Multispecies_getSumFrac

SYNOPSIS

  Multispecies_getSumFrac(integer(in) :: property,
                            real(out) :: value,
                    real(in),optional :: weights(:),
                 integer(in),optional :: speciesMask(NSPECIES))

DESCRIPTION

  Given a property name and an array of weights, compute the
  fraction of the weighted sum of the chosen property. The sum is
  weighted by the total weight of the species (A).  
      SumFrac = sum over species (weights * propertyValue / A)

  Weights should be an array of length equal to the number of
  species (NSPECIES).  If not provided, weights are assumed equal to
  one.

  The default is to return the weighted sum fraction for
  all species.  A user, however, by passing in the optional argument
  speciesMask can choose to include only species of interest.

  speciesMask is an array of integers of size NSPECIES.
  The mask works inclusively, that is, the user specifies species that
  should be _included_ in the calculation.

  For example: in a given simulation there are 4 defined species
  NI56, CO61, MG23, FE51.  They are defined in Flash.h as NI56_SPEC,
  CO61_SPEC, MG23_SPEC, and FE51_SPEC respectively.  If the user
  wants to get a weighted sum of just NI56 and FE51 then the user would
  pass in the speciesMask argument where

  speciesMask(1) = NI56_SPEC
  speciesMask(2) = FE51_SPEC
  speciesMask(3) = UNDEFINED_INT
  speciesMask(4) = UNDEFINED_INT

  Order does not matter, however the order of the weights array MUST
  be the same as the mask.  For example, if the user wants NI56
  weighted twice as heavily as FE51 in the previous example, he
  would set

   weights(1) = 2.0
   weights(2) = 1.0
   weights(3) = UNDEFINED_REAL
   weights(4) = UNDEFINED_REAL

  The property is an integer because it is defined in Multispecies.h
  description    property(defined as integer in Multispecies.h)
  --------------------------------------------------------------
  numTotal        A         Total number of protons and neutrons in nucleus
  numPositive     Z         Atomic number; number of protons in nucleus
  numNeutral      N         Number of neutrons
  numNegative     E         Number of electrons
  bindingEnergy   EB        Binding energy
  adiabatic index GAMMA     Ratio of heat capacities: Cp / Cv

ARGUMENTS

    property - name of property, as an integer defined in Multispecies.h
    value    - returned weighted sum fraction of a given property
    weights  - an optional array of length 1 or NSPECIES holding the weights for each
                species.  If not provided, weights=1 is assumed.
    speciesMask - optional array of length NSPECIES specifying the species
                     to be included in the average.
                  If not provided, all species are used.

NOTES

  Species properties are normally set in Simulation_initSpecies.
  The simulation's Config file defines the number and name of species, as in
     SPECIES AIR
     SPECIES SF6

EXAMPLE

  subroutine Eos()
      use Eos_data, ONLY: 
      implicit none
      .... declarations
      real, dimension(NSPECIES)      :: weights
      integer, dimension(NSPECIES)   :: mask
      .... executable statements
      call Multispecies_getSumFrac(A,value,weights,mask)
      .....
   end subroutine Eos

SEE ALSO

   Multispecies_getSum