Skip to content

objective function for gradient #72

@zhen0z

Description

@zhen0z

Hi,

I'm trying to compute the gradient by defining a objective function like this:

function objective_function(model, state, Δt, step_i, forces)
    dif1 = JutulDarcy.compute_well_qoi(model, state, forces, :Producer1, SurfaceLiquidRateTarget) - obs_pro1[step_i]
    dif2 = JutulDarcy.compute_well_qoi(model, state, forces, :Producer2, SurfaceLiquidRateTarget) - obs_pro2[step_i]
    loss = sum(dif1.^2 + dif2.^2)
    return loss
end 

my observation data is:
obs_pro1= ws[:Producer1, :lrat]
obs_pro2= ws[:Producer2, :lrat]

However, the gradient computed based on this objective function seems not working quite well.

Therefore:
Is the function JutulDarcy.compute_well_qoi specifically designed for coarse and fine scale reservoir history matching?
Is it possible for me to access ws[:Producer1, :lrat] and ws[:Producer2, :lrat] through state in the objective function? ( I think JutulDarcy.compute_well_qoi is trying to complete this task, but it isn't giving me the right answer until now)

Thanks for your assistance!

Best regards,
Zhen

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions