Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 0 additions & 41 deletions geom_files/rect_out.avl

This file was deleted.

406 changes: 340 additions & 66 deletions optvl/optvl_class.py

Large diffs are not rendered by default.

42 changes: 42 additions & 0 deletions src/aoper.f
Original file line number Diff line number Diff line change
Expand Up @@ -2353,4 +2353,46 @@ subroutine solve_adjoint(solve_stab_deriv_adj, solve_con_surf_adj)
enddo
endif

end !subroutine solve_adjoint

subroutine solve_direct(solve_stab_deriv_drt, solve_con_surf_drt)
! solves the direct equation with the jacobian to compute dx/du
use avl_heap_inc
use avl_heap_diff_inc
include "AVL.INC"
include "AVL_ad_seeds.inc"
integer i
logical :: solve_stab_deriv_drt, solve_con_surf_drt

CALL SETUP
IF(.NOT.LAIC) THEN
call factor_AIC
ENDIF

! assume we have run the other routines to put dr/dx is in gam_diff
do i =1,NVOR
GAM_diff(i) = RES_diff(i)
enddo

CALL BAKSUB(NVOR,NVOR,AICN_LU,IAPIV,GAM_diff)

if (solve_con_surf_drt) then
DO IC = 1, NCONTROL
do i =1,NVOR
GAM_D_diff(i,IC) = RES_D_diff(i,IC)
enddo
CALL BAKSUB(NVOR,NVOR,AICN_LU,IAPIV,GAM_D_diff(:,IC))
enddo
endif

if (solve_stab_deriv_drt) then
DO IU = 1,6
do i =1,NVOR
GAM_U_diff(i,IU) = RES_U_diff(i,IU)
enddo

CALL BAKSUB(NVOR,NVOR,AICN_LU,IAPIV,GAM_U_diff(:,IU))
enddo
endif

end !subroutine solve_adjoint
4 changes: 4 additions & 0 deletions src/f2py/libavl.pyf
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,10 @@ python module libavl ! in
subroutine solve_adjoint(solve_stab_deriv_adj, solve_con_surf_adj)
logical :: solve_stab_deriv_adj, solve_con_surf_adj
end subroutine solve_adjoint

subroutine solve_direct(solve_stab_deriv_drt, solve_con_surf_drt)
logical :: solve_stab_deriv_drt, solve_con_surf_drt
end subroutine solve_direct

subroutine cpoml(save_file)
logical :: save_file
Expand Down
4 changes: 2 additions & 2 deletions tests/test_body_axis_derivs_partial_derivs.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def tearDown(self):
print(f"{self.id()} Memory usage: {mb_memory:.2f} MB")

def test_fwd_aero_constraint(self):
for con_key in self.ovl_solver.con_var_to_fort_var:
for con_key in self.ovl_solver.con_var_list:
bd_d = self.ovl_solver._execute_jac_vec_prod_fwd(con_seeds={con_key: 1.0})[4]

bd_d_fd = self.ovl_solver._execute_jac_vec_prod_fwd(con_seeds={con_key: 1.0}, mode="FD", step=1e-6)[4]
Expand All @@ -64,7 +64,7 @@ def test_rev_aero_constraint(self):

self.ovl_solver.clear_ad_seeds_fast()

for con_key in self.ovl_solver.con_var_to_fort_var:
for con_key in self.ovl_solver.con_var_list:
body_axis_deriv_seeds_fwd= self.ovl_solver._execute_jac_vec_prod_fwd(con_seeds={con_key: 1.0})[4]

body_axis_deriv_sum = 0.0
Expand Down
8 changes: 4 additions & 4 deletions tests/test_consurf_partial_derivs.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def tearDown(self):
print(f"{self.id()} Memory usage: {mb_memory:.2f} MB")

def test_fwd_aero_constraint(self):
for con_key in self.ovl_solver.con_var_to_fort_var:
for con_key in self.ovl_solver.con_var_list:
res_d_seeds = self.ovl_solver._execute_jac_vec_prod_fwd(con_seeds={con_key: 1.0})[5]

res_d_seeds_FD = self.ovl_solver._execute_jac_vec_prod_fwd(con_seeds={con_key: 1.0}, mode="FD", step=1e-5)[
Expand All @@ -53,7 +53,7 @@ def test_fwd_aero_constraint(self):
)

def test_rev_aero_constraint(self):
for con_key in self.ovl_solver.con_var_to_fort_var:
for con_key in self.ovl_solver.con_var_list:
res_d_seeds = self.ovl_solver._execute_jac_vec_prod_fwd(con_seeds={con_key: 1.0})[5]

num_gamma = self.ovl_solver.get_mesh_size()
Expand Down Expand Up @@ -197,7 +197,7 @@ def tearDown(self):
print(f"{self.id()} Memory usage: {mb_memory:.2f} MB")

def test_fwd_aero_constraint(self):
for con_key in self.ovl_solver.con_var_to_fort_var:
for con_key in self.ovl_solver.con_var_list:
cs_d = self.ovl_solver._execute_jac_vec_prod_fwd(con_seeds={con_key: 1.0})[2]

cs_d_fd = self.ovl_solver._execute_jac_vec_prod_fwd(con_seeds={con_key: 1.0}, mode="FD", step=1e-8)[2]
Expand All @@ -223,7 +223,7 @@ def test_rev_aero_constraint(self):

self.ovl_solver.clear_ad_seeds_fast()

for con_key in self.ovl_solver.con_var_to_fort_var:
for con_key in self.ovl_solver.con_var_list:
cs_deriv_seeds_fwd = self.ovl_solver._execute_jac_vec_prod_fwd(con_seeds={con_key: 1.0})[2]

cs_deriv_sum = 0.0
Expand Down
6 changes: 3 additions & 3 deletions tests/test_mesh_totals.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,10 +122,10 @@ def test_aero_constraint(self):
sens_sd = self.ovl_solver.execute_run_sensitivities([], stab_derivs=stab_derivs, print_timings=False)
sens_bd = self.ovl_solver.execute_run_sensitivities([], body_axis_derivs=body_axis_derivs, print_timings=False)

for con_key in self.ovl_solver.con_var_to_fort_var:
for con_key in self.ovl_solver.con_var_list:
# for con_key in ['beta']:
func_seeds, consurf_deriv_seeds, stab_derivs_seeds, body_axis_derivs_seeds = self.finite_dif(
[con_key], {}, {}, {}, {}, step=1.0e-5
[con_key], {}, {}, {}, {}, step=1.0e-6
)

# for func_key in func_vars:
Expand Down Expand Up @@ -233,7 +233,7 @@ def test_mesh(self):
print_timings=False,
)

# for con_key in self.ovl_solver.con_var_to_fort_var:
# for con_key in self.ovl_solver.con_var_list:
sens_FD = {}
for surf_key in self.ovl_solver.surf_geom_to_fort_var:
sens_FD[surf_key] = {}
Expand Down
8 changes: 4 additions & 4 deletions tests/test_partial_derivs.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def tearDown(self):
print(f"{self.id():80} Memory usage: {mb_memory:.2f} MB")

def test_fwd_aero_constraint(self):
for con_key in self.ovl_solver.con_var_to_fort_var:
for con_key in self.ovl_solver.con_var_list:
func_seeds = self.ovl_solver._execute_jac_vec_prod_fwd(con_seeds={con_key: 1.0}, geom_seeds={})[0]

func_seeds_FD = self.ovl_solver._execute_jac_vec_prod_fwd(
Expand All @@ -66,7 +66,7 @@ def test_fwd_aero_constraint(self):
)

def test_rev_aero_constraint(self):
for con_key in self.ovl_solver.con_var_to_fort_var:
for con_key in self.ovl_solver.con_var_list:
self.ovl_solver.clear_ad_seeds_fast()

func_seeds_fwd = self.ovl_solver._execute_jac_vec_prod_fwd(con_seeds={con_key: 1.0}, geom_seeds={})[0]
Expand Down Expand Up @@ -353,7 +353,7 @@ def tearDown(self):
print(f"{self.id():80} Memory usage: {mb_memory:.2f} MB")

def test_fwd_aero_constraint(self):
for con_key in self.ovl_solver.con_var_to_fort_var:
for con_key in self.ovl_solver.con_var_list:
res_seeds_FD = self.ovl_solver._execute_jac_vec_prod_fwd(
con_seeds={con_key: 1.0}, geom_seeds={}, mode="FD", step=1e-8
)[1]
Expand All @@ -370,7 +370,7 @@ def test_rev_aero_constraint(self):

self.ovl_solver.clear_ad_seeds_fast()

for con_key in self.ovl_solver.con_var_to_fort_var:
for con_key in self.ovl_solver.con_var_list:
res_seeds_fwd = self.ovl_solver._execute_jac_vec_prod_fwd(con_seeds={con_key: 1.0})[1]

# do dot product
Expand Down
2 changes: 1 addition & 1 deletion tests/test_pygeo.py
Original file line number Diff line number Diff line change
Expand Up @@ -423,7 +423,7 @@ def sweep(val, geo):
np.testing.assert_allclose(
dvgeo_var_dot,
func_dot,
atol=5e-9,
atol=7e-9,
err_msg=f"{func_key} wrt {surf_key}:{dvgeo_var_key:10}",
)
else:
Expand Down
8 changes: 4 additions & 4 deletions tests/test_stab_derivs_partial_derivs.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def tearDown(self):
print(f"{self.id()} Memory usage: {mb_memory:.2f} MB")

def test_fwd_aero_constraint(self):
for con_key in self.ovl_solver.con_var_to_fort_var:
for con_key in self.ovl_solver.con_var_list:
res_u_seeds = self.ovl_solver._execute_jac_vec_prod_fwd(con_seeds={con_key: 1.0})[6]

res_u_seeds_FD = self.ovl_solver._execute_jac_vec_prod_fwd(con_seeds={con_key: 1.0}, mode="FD", step=1e-5)[
Expand All @@ -52,7 +52,7 @@ def test_fwd_aero_constraint(self):
)

def test_rev_aero_constraint(self):
for con_key in self.ovl_solver.con_var_to_fort_var:
for con_key in self.ovl_solver.con_var_list:
# for con_key in ["beta", "beta"]:
res_u_seeds = self.ovl_solver._execute_jac_vec_prod_fwd(con_seeds={con_key: 1.0})[6]

Expand Down Expand Up @@ -214,7 +214,7 @@ def tearDown(self):
print(f"{self.id()} Memory usage: {mb_memory:.2f} MB")

def test_fwd_aero_constraint(self):
for con_key in self.ovl_solver.con_var_to_fort_var:
for con_key in self.ovl_solver.con_var_list:
sd_d = self.ovl_solver._execute_jac_vec_prod_fwd(con_seeds={con_key: 1.0})[3]
sd_d_fd = self.ovl_solver._execute_jac_vec_prod_fwd(con_seeds={con_key: 1.0}, mode="FD", step=1e-6)[3]

Expand Down Expand Up @@ -249,7 +249,7 @@ def test_rev_aero_constraint(self):

self.ovl_solver.clear_ad_seeds_fast()

for con_key in self.ovl_solver.con_var_to_fort_var:
for con_key in self.ovl_solver.con_var_list:
stab_deriv_seeds_fwd = self.ovl_solver._execute_jac_vec_prod_fwd(con_seeds={con_key: 1.0})[3]

stab_deriv_sum = 0.0
Expand Down
Loading
Loading