Skip to content

Commit

Permalink
testing if CI fails
Browse files Browse the repository at this point in the history
  • Loading branch information
V-Rang authored and V-Rang committed Mar 16, 2024
1 parent 94ab33c commit f80fc13
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 56 deletions.
12 changes: 1 addition & 11 deletions example/poisson_example.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
import sys
import os
import dolfinx.fem.petsc
import pickle
import time

from matplotlib import pyplot as plt

Expand Down Expand Up @@ -108,9 +106,6 @@ def run_inversion(nx : int, ny : int, noise_variance : float, prior_param : dict
hpx.parRandom.normal(1.,noise)
prior.sample(noise,m0)

# hpx.modelVerify(comm,model,m0,is_quadratic=False,misfit_only=True,verbose=(rank == 0))
# hpx.modelVerify(comm,model,m0,is_quadratic=False,misfit_only=False,verbose=(rank == 0))


eps, err_grad, err_H,rel_symm_error = hpx.modelVerify(comm,model,m0,is_quadratic=False,misfit_only=True,verbose=(rank == 0))

Expand All @@ -120,12 +115,7 @@ def run_inversion(nx : int, ny : int, noise_variance : float, prior_param : dict
eps, err_grad, err_H,rel_symm_error = hpx.modelVerify(comm,model,m0,is_quadratic=False,misfit_only=False,verbose=(rank == 0))

data_misfit_False = {"eps":eps,"err_grad":err_grad, "err_H": err_H, "sym_Hessian_value":rel_symm_error}

# if(rank == 0):
# print(err_grad,'\n')
# print(err_H)
# plt.show()


# # #######################################

prior_mean_copy = prior.generate_parameter(0)
Expand Down
35 changes: 1 addition & 34 deletions example/sfsi_toy_gaussian.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,6 @@
import os
import dolfinx.fem.petsc

# for validation purposes only - to write out modelVerify results
import pickle


from matplotlib import pyplot as plt

sys.path.append( os.environ.get('HIPPYLIBX_BASE_DIR', "../") )
Expand Down Expand Up @@ -129,41 +125,12 @@ def run_inversion(nx : int, ny : int, noise_variance : float, prior_param : dict

eps, err_grad, err_H,rel_symm_error = hpx.modelVerify(comm,model,m0,is_quadratic=False,misfit_only=True,verbose=(rank == 0))

# if(rank == 0):
data_misfit_True = {"eps":eps,"err_grad":err_grad, "err_H": err_H, "sym_Hessian_value":rel_symm_error}

# if(comm.size == 1):
# os.makedirs('../hippylibX/test',exist_ok=True)
# with open('../hippylibX/test/outputs_qpact_1_proc_misfit_True.pickle','wb') as f:
# pickle.dump(data,f)

# if(comm.size == 4):
# os.makedirs('../hippylibX/test',exist_ok=True)
# with open('../hippylibX/test/outputs_qpact_4_proc_misfit_True.pickle','wb') as f:
# pickle.dump(data,f)


eps, err_grad, err_H,rel_symm_error = hpx.modelVerify(comm,model,m0,is_quadratic=False,misfit_only=False,verbose=(rank == 0))

# if(rank == 0):
data_misfit_False = {"eps":eps,"err_grad":err_grad, "err_H": err_H, "sym_Hessian_value":rel_symm_error}

# if(comm.size == 1):
# os.makedirs('../hippylibX/test',exist_ok=True)
# with open('../hippylibX/test/outputs_qpact_1_proc_misfit_False.pickle','wb') as f:
# pickle.dump(data,f)

# if(comm.size == 4):
# os.makedirs('../hippylibX/test',exist_ok=True)
# with open('../hippylibX/test/outputs_qpact_4_proc_misfit_False.pickle','wb') as f:
# pickle.dump(data,f)


# if(rank == 0):
# print(err_grad,'\n')
# print(err_H)
# plt.show()


# #######################################

prior_mean_copy = prior.generate_parameter(0)
Expand Down
11 changes: 3 additions & 8 deletions hippylibX/modeling/modelVerify.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,12 +94,9 @@ def modelVerify(comm : mpi4py.MPI.Intracomm, model, m0 : dlx.la.Vector, is_quadr
err.destroy()

if verbose:
modelVerifyPlotErrors(comm, misfit_only,is_quadratic, eps, err_grad, err_H)
modelVerifyPlotErrors(is_quadratic, eps, err_grad, err_H)

#comm and misfit_only are being passed for plotting purposes only-
#the title of the plot for saved figures.
#has to be removed for the final version.


temp_petsc_vec_grad_x.destroy()

xx = model.generate_vector(PARAMETER)
Expand Down Expand Up @@ -128,7 +125,7 @@ def modelVerify(comm : mpi4py.MPI.Intracomm, model, m0 : dlx.la.Vector, is_quadr
return eps, err_grad, err_H, rel_symm_error


def modelVerifyPlotErrors(comm, misfit_only, is_quadratic : bool, eps : np.ndarray, err_grad : np.ndarray, err_H : np.ndarray) -> None:
def modelVerifyPlotErrors(is_quadratic : bool, eps : np.ndarray, err_grad : np.ndarray, err_H : np.ndarray) -> None:
try:
import matplotlib.pyplot as plt
except:
Expand All @@ -142,7 +139,6 @@ def modelVerifyPlotErrors(comm, misfit_only, is_quadratic : bool, eps : np.ndarr
plt.subplot(122)
plt.loglog(eps[0], err_H[0], "-ob", [10*eps[0], eps[0], 0.1*eps[0]], [err_H[0],err_H[0],err_H[0]], "-.k")
plt.title("FD Hessian Check")
# plt.savefig(f"result_with_misfit_{misfit_only}_using_{comm.size}_procs.png")
else:
plt.figure()
plt.subplot(121)
Expand All @@ -151,4 +147,3 @@ def modelVerifyPlotErrors(comm, misfit_only, is_quadratic : bool, eps : np.ndarr
plt.subplot(122)
plt.loglog(eps, err_H, "-ob", eps, eps*(err_H[0]/eps[0]), "-.k")
plt.title("FD Hessian Check")
# plt.savefig(f"result_with_misfit_{misfit_only}_using_{comm.size}_procs.png")
20 changes: 17 additions & 3 deletions hippylibX/test/testing_suite_file.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,35 @@

from example import poisson_example, sfsi_toy_gaussian

# def data_parser(data):
# eps = data["eps"]
# err_grad = data['err_grad']
# err_H = data['err_H']
# sym_Hessian_value = data['sym_Hessian_value']

# slope_grad_coeffs = np.polyfit(np.log(eps[20:30]), np.log(err_grad[20:30]), 1)
# slope_grad = slope_grad_coeffs[0]

# slope_H_coeffs = np.polyfit(np.log(eps[20:30]), np.log(err_H[20:30]), 1)
# slope_H = slope_H_coeffs[0]

# return sym_Hessian_value, slope_grad, slope_H


def data_parser(data):
eps = data["eps"]
err_grad = data['err_grad']
err_H = data['err_H']
sym_Hessian_value = data['sym_Hessian_value']

slope_grad_coeffs = np.polyfit(np.log(eps[20:30]), np.log(err_grad[20:30]), 1)
slope_grad_coeffs = np.polyfit(np.log(eps[10:]), np.log(err_grad[10:]), 1)
slope_grad = slope_grad_coeffs[0]

slope_H_coeffs = np.polyfit(np.log(eps[20:30]), np.log(err_H[20:30]), 1)
slope_H_coeffs = np.polyfit(np.log(eps[10:]), np.log(err_H[10:]), 1)
slope_H = slope_H_coeffs[0]

return sym_Hessian_value, slope_grad, slope_H


class Test_runner:
def __init__(self):
self.result = unittest.TestResult()
Expand Down

0 comments on commit f80fc13

Please sign in to comment.