Program Listing for File CustomStellarEvolution.h

Return to documentation for file (/home/kpenev/projects/git/poet/poet_src/StellarEvolution/CustomStellarEvolution.h)

#ifndef __CUSTOM_STELLAR_EVOLUTION_H
#define __CUSTOM_STELLAR_EVOLUTION_H

#include "../Core/SharedLibraryExportMacros.h"
#include "StellarEvolution.h"
#include "IOUtil.h"
#include <fstream>
#include <string>
#include <limits>

namespace StellarEvolution {

    namespace CustomStellarEvolution {

        enum Columns {
            ICONV,

            IRAD,

            RSTAR,

            RRAD,

            MRAD,

            LSTAR,

            AGE,

            SKIP,

            NUM_TRACK_QUANTITIES = SKIP
        };

        class LIB_PUBLIC Interpolator : public StellarEvolution::Interpolator {
        private:
            std::valarray< std::valarray<double> > read_track(
                const std::string &filename,

                const std::vector<Columns> &format
            ) const;
        public:
            Evolution(
                const std::string &filename,

                const std::vector<Columns> &format,

                const std::vector<double> &smoothing,

                const std::vector<int> &nodes,

                const std::vector<bool> &vs_log_age,

                const std::vector<bool> &log_quantity
            );
        };

    } //End CustomStellarEvolution namespace.

} //End StellarEvolution namespace.

#endif