Select Git revision
preconditioner.oldh
preconditioner.oldh 801 B
#ifndef H_COMMON_WAVE_PRECONDITIONER
#define H_COMMON_WAVE_PRECONDITIONER
//FWI Library
#include "../model/state.h"
/*
* ModelPreconditionerState
*/
class ModelPreconditionerState
{
private:
ModelFunction _state;
bool _isUpToDate;
public:
const ModelFunction& state() const;
friend class ModelPreconditionerUpdater;
};
/*
* ModelPreconditionerUpdater
*/
class ModelPreconditionerUpdater
{
private:
ModelPreconditionerState _ps;
void update(const ModelStateEvaluator& ms);
virtual ModelFunction update_preconditioner(const ModelStateEvaluator& ms) = 0;
public:
const ModelFunction& get_preconditioner(const ModelStateEvaluator& ms);
void isObsolete(bool NoMoreUpToDate);
virtual bool isModelDependent() {return true;};
};
#endif // H_COMMON_WAVE_PRECONDITIONER