Skip to content

Commit 37d57da

Browse files
committed
added parameters for step_mode
1 parent afdeed7 commit 37d57da

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

src/nlesolver_module.F90

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,12 @@ module nlesolver_module
8787
integer,parameter,public :: NLESOLVER_INF_NORM = 2 !! [[nlesolver_type:norm_mode]] : infinity-norm
8888
integer,parameter,public :: NLESOLVER_1_NORM = 3 !! [[nlesolver_type:norm_mode]] : 1-norm
8989

90+
! options for linesearch step mode:
91+
integer,parameter,public :: NLESOLVER_LINESEARCH_SIMPLE = 1 !! [[nlesolver_type:linesearch]] : use the specified `alpha` (0,1]
92+
integer,parameter,public :: NLESOLVER_LINESEARCH_BACKTRACKING = 2 !! [[nlesolver_type:linesearch]] : backtracking linesearch (between `alpha_min` and `alpha_max`)
93+
integer,parameter,public :: NLESOLVER_LINESEARCH_EXACT = 3 !! [[nlesolver_type:linesearch]] : exact linesearch (between `alpha_min` and `alpha_max`)
94+
integer,parameter,public :: NLESOLVER_LINESEARCH_FIXEDPOINT = 4 !! [[nlesolver_type:linesearch]] : evaluate function at specified fixed points (between `alpha_min` and `alpha_max`)
95+
9096
!*********************************************************
9197
type,public :: nlesolver_type
9298

@@ -577,14 +583,10 @@ subroutine initialize_nlesolver_variables(me,&
577583

578584
if (present(step_mode)) then
579585
select case (step_mode)
580-
case(1) ! = use the specified `alpha` (0,1]
581-
me%linesearch => simple_step
582-
case(2) ! = backtracking linesearch (between `alpha_min` and `alpha_max`)
583-
me%linesearch => backtracking_linesearch
584-
case(3) ! = exact linesearch (between `alpha_min` and `alpha_max`)
585-
me%linesearch => exact_linesearch
586-
case(4) ! = evaluate function at specified fixed points (between `alpha_min` and `alpha_max`)
587-
me%linesearch => fixed_point_linesearch
586+
case(NLESOLVER_LINESEARCH_SIMPLE); me%linesearch => simple_step
587+
case(NLESOLVER_LINESEARCH_BACKTRACKING); me%linesearch => backtracking_linesearch
588+
case(NLESOLVER_LINESEARCH_EXACT); me%linesearch => exact_linesearch
589+
case(NLESOLVER_LINESEARCH_FIXEDPOINT); me%linesearch => fixed_point_linesearch
588590
case default
589591
status_ok = .false.
590592
call me%set_status(istat = -5, string = 'Error: invalid step_mode:',i=step_mode)

0 commit comments

Comments
 (0)