1 #ifndef COMPOSITE_PERTURBATION_H 2 #define COMPOSITE_PERTURBATION_H 6 #include <boost/shared_ptr.hpp> 9 class CompositePerturbation;
73 virtual blitz::Array<double, 1> perturbation()
const;
74 virtual void print(std::ostream& Os)
const;
83 B->attach_notify(*
this);
95 std::list<boost::shared_ptr<PerturbationBuilder> > blist;
virtual void build_perturbation(blitz::Array< double, 1 > &v, int index) const =0
Called when we need this class to do its part in setting up the perturbation array.
void remove_builder(const boost::shared_ptr< PerturbationBuilder > &B)
Remove a builder to the build list.
virtual void attach_notify(CompositePerturbation &Comp_ig)
Called when we get attached to a CompositePerturbation.
virtual ~PerturbationBuilder()
void add_builder(const boost::shared_ptr< PerturbationBuilder > &B)
Add a builder to the build list.
A common way to create a perturbation is to have other classes responsible for portions of the state ...
virtual int number_element() const =0
Number of elements we will be adding to the perturbation.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
This gets the perturbation to use with a finite difference Jacobian.
Class that builds a perturbation to use for a finite difference Jacobian.
virtual ~CompositePerturbation()