Skip to content
Snippets Groups Projects
Select Git revision
  • c41620a4ef5e8ad7d4edbaff0c15cfa554c2d5c9
  • master default protected
  • NewDistributionGmshFWI
  • parametrizationSimpleWave
  • tuto_obstacle
  • everything
  • cleanup_configuuration_mesh
  • fix
  • source_estimation
  • unique_ptr
  • SobolevDirectionalFilter
  • OT
  • newPhysics
  • SimultaneousFrequency
  • SobolevDistance
  • BonesImaging
  • MultiParameter
  • UpdateAntho
  • v2.0
  • v1.0
20 results

objective.h

Blame
  • objective.h 928 B
    #ifndef H_COMMON_DATA_OBJECTIVE
    #define H_COMMON_DATA_OBJECTIVE
    
    //GmshFem Library
    #include "Formulation.h"
    //FWI Library
    #include "../state.h"
    #include "../../wave/element.h"
    #include "../../configuration.h"
    
    //Forward declaration
    class ModelUpdater;
    template<Physic T_Physic>
    class DataUpdater;
    
    /*
    * ObjectiveInterface
    */
    template<Physic T_Physic>
    class ObjectiveInterface
    {
    protected:
        const Data<T_Physic>* const _d0;
        Data<T_Physic> _v;
    public:
        ObjectiveInterface(const Data<T_Physic>* const d0): _d0(d0), _v(*d0) {};
        virtual ~ObjectiveInterface() = default;
    
        virtual double performance(const Data<T_Physic>& d) = 0;
        virtual const Data<T_Physic>& update(Type type, const DataStateEvaluator<T_Physic>& ds) = 0;
    
        virtual void link(ModelUpdater* const mu, DataUpdater<T_Physic>* const du) {};
        virtual void unlink() {};
        virtual void modelIsObsolete() {};
    };
    
    #endif //H_COMMON_DATA_OBJECTIVE