1 #ifndef SRC_OPACITY_ABSORBER_HPP_
2 #define SRC_OPACITY_ABSORBER_HPP_
11 #include <yaml-cpp/yaml.h>
14 #include <athena/athena.hpp>
91 std::string band_name,
92 YAML::Node
const& rad);
std::shared_ptr< Absorber > AbsorberPtr
std::vector< AbsorberPtr > AbsorberContainer
static AbsorberPtr createAbsorberPartial(std::string name, std::string type)
Only create an absorber based on its name and class.
static AbsorberPtr CreateFrom(YAML::Node const &my, std::string band_name)
Create an absorber from YAML node.
base class of all absorbers
virtual Real GetAttenuation(Real wave1, Real wave2, AirParcel const &var) const
Get attenuation coefficient [1/m].
std::string model_name_
absorption model model
void LoadOpacity()
Load opacity from internal variable.
virtual void GetPhaseMomentum(Real *pp, Real wave1, Real wave2, AirParcel const &var, int np) const
Get phase function [1].
std::string opacity_filename_
opacity filename
Absorber(std::string name)
void SetModel(std::string name)
Set absorption model.
virtual Real GetSingleScatteringAlbedo(Real wave1, Real wave2, AirParcel const &var) const
Get single scattering albedo [1].
virtual void LoadCoefficient(std::string fname, size_t bid)
Load absorption coefficient from file.
void SetOpacityFile(std::string filename)
Set opacity filename to internal variable, does not load opacity.
void LoadOpacityFromFile(std::string filename)
Combines SetOpacityFile() and LoadOpacity()