Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pqn may break vmin/vmax limits #7

Open
kerim371 opened this issue Aug 27, 2023 · 0 comments
Open

pqn may break vmin/vmax limits #7

kerim371 opened this issue Aug 27, 2023 · 0 comments

Comments

@kerim371
Copy link

kerim371 commented Aug 27, 2023

Hi,

While working on Viking Graben JUDI's PR I've encountered a situation when at some iteration the pqn algorithm with TV condition crosses the vmin/vmax boundary condition.

For example my code:

# SETUP CONSTARAINTS
options=PARSDMM_options()
options.FL=Float32
options=default_PARSDMM_options(options,options.FL)
constraint = Vector{SetIntersectionProjection.set_definitions}()

# Bound constraints
vmin = 1.2
vmax = 5.2

# Slowness squared [s^2/km^2]
mmin = (1f0 ./ vmax).^2
mmax = (1f0 ./ vmin).^2
mminArr = ones(Float32, size(model0)) .* mmin
mmaxArr = ones(Float32, size(model0)) .* mmax

# bounds:
set_type = "bounds"
TD_OP = "identity"
app_mode = ("matrix","")
custom_TD_OP = ([],false)
push!(constraint, set_definitions(set_type,TD_OP,vec(mminArr),vec(mmaxArr),app_mode,custom_TD_OP));

#TV
(TV,dummy1,dummy2,dummy3) = get_TD_operator(model0.m,"TV",options.FL)
mvar_min = 0.0
mvar_max = norm(TV*vec(m0),1) * 1.0
set_type = "l1"
TD_OP = "TV"
app_mode = ("matrix","")
custom_TD_OP = ([],false)
push!(constraint, set_definitions(set_type,TD_OP,mvar_min,mvar_max,app_mode,custom_TD_OP));

Here is the result of 8 9 and 10 iterations:
image
image
image

As you can see 9th iteration brings up values about 11 km/s (there is no clipping values during the imshow and the colorbar's range reflects min/max values in the array) even when the borders are [1.2, 5.2]

P.S. 15 iterations at 3.5 Hz passed correctly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant