Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

mf4classes.hpp

Go to the documentation of this file.
00001 /*
00002  * ******** fete: From ENDF To ENDL *********
00003  * 
00004  * Copyright (c) 2006, The Regents of the University of California. 
00005  * All rights reserved.
00006  * 
00007  * Produced at the Lawrence Livermore National Laboratory. 
00008  * Written by David A. Brown, Gerry Hedstrom, Tony Hill
00009  * 
00010  * This file is part of fete v1.0  (UCRL-CODE-218718)
00011  * 
00012  * Please read the COPYING file for "Our Notice and GNU General 
00013  * Public License" in the root of this software distribution.  
00014  * 
00015  * This program is free software; you can redistribute it and/or modify 
00016  * it under the terms of the GNU General Public License (as published by 
00017  * the Free Software Foundation) version 2, dated June 1991. 
00018  * 
00019  * This program is distributed in the hope that it will be useful, 
00020  * but WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF 
00021  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms 
00022  * and conditions of the GNU General Public License for more details. 
00023  * 
00024  * You should have received a copy of the GNU General Public License along 
00025  * with this program; if not, write to the Free Software Foundation, Inc., 
00026  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
00027  * 
00028  * $Revision: 1735 $
00029  * $Date: 2006-02-09 13:47:26 -0800 (Thu, 09 Feb 2006) $
00030  * $Author: dbrown $
00031  * $Id: mf4classes.hpp 1735 2006-02-09 21:47:26Z dbrown $
00032  * 
00033  * ******** fete: From ENDF To ENDL *********
00034  */
00035 
00036 //header for the classes used in translating the MF=4 files
00037 
00038 #ifndef MF4CLASSES
00039 #define MF4CLASSES
00040 
00041 #include "list_2d.hpp"
00042 #include "ENDF_file.hpp"
00043 
00044 using namespace std;
00045 
00046 // ----------- class two_d_isotropic -----------------
00047 // derive this class from two_d_list
00048 //! Class to handle isotropic distributions
00049 class two_d_isotropic : public two_d_list<one_d_isotropic>
00050 {
00051 public:
00052   //! Makes an isotropic list
00053   void expand_data(int MT);
00054 
00055 };
00056 
00057 // ----------- class two_d_Legendre -----------------
00058 // derive this class from two_d_list
00059 //! Class to handle Legendre data
00060 class two_d_Legendre : public two_d_list<one_d_Legendre>
00061 {
00062 public:
00063   //! Reads in all the data and expands into linearly interpolable pointwise data
00064   void expand_data(mf4_file& inFile, int NE, int MF);
00065 
00066   //! Reads in data for one incident neutron energy and expands
00067   //! *done = true if the incident energy is at or above the maximum
00068   void one_E_in( mf4_file& inFile, int MF, bool *done );
00069 
00070   //! Converts data so that it is linearly interpolable in incident energy
00071   void expand_interp();
00072 };
00073 
00074 
00075 // ----------- class mf4_table -----------------
00076 //! Class that handles tabular data
00077 class mf4_table : public two_d_table
00078 {
00079 public:
00080   //! Manages everything
00081   void master( mf4_file& inFile );
00082 
00083   //! Reads in all the data
00084   void read_data( mf4_file& inFile, int NE );
00085 
00086   //! Reads in data for a particular incident energy
00087   void one_E_in( mf4_file& inFile );
00088 
00089 };
00090 
00091 // ----------- class mixed_mf4 -----------------
00092 //! Class that handles Legendre data at low incident energies and tables at high energies
00093 class mixed_mf4 : public two_d_Legendre
00094 {
00095 private:
00096   // For the tabular data
00097   mf4_table table_data;
00098 
00099 public:
00100   // Manage everything
00101   void master( mf4_file& inFile );
00102 };
00103 
00104 // ----------- class gen_mf4 -----------------
00105 // derive this class from two_d_table
00106 //! Class to handle data coming from MF=6 files
00107 class gen_mf4 : public two_d_table
00108 {
00109 // This class is used by mf6 files, and it may
00110 // contain Legendre data for some incident energies
00111 // and tabular data for others.  We convert it to a
00112 // 2-d table.
00113 public:
00114   //! Interprets the data
00115   void master( mf6_file& inFile );
00116 
00117   //! Interprets Legendre data for 1 incident energy
00118   void one_legendre( mf6_file& inFile, double e_in, int NL );
00119 
00120   //! Interprets tabular data for 1 incident energy
00121   void one_table( mf6_file& inFile, double e_in, int NL );
00122 
00123 };
00124 
00125 #endif
00126 

Generated on Thu Sep 7 10:30:11 2006 for fete -- From ENDFB6 To ENDL by doxygen 1.3.4