Skip to content

Commit

Permalink
Merge branch 'dev_optimizer' into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
wahln committed Nov 11, 2021
2 parents dbef217 + f16fce3 commit d08fe1d
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
8 changes: 6 additions & 2 deletions matRad_fluenceOptimization.m
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
function [resultGUI,optimizer] = matRad_fluenceOptimization(dij,cst,pln)
function [resultGUI,optimizer] = matRad_fluenceOptimization(dij,cst,pln,wInit)
% matRad inverse planning wrapper function
%
% call
% [resultGUI,optimizer] = matRad_fluenceOptimization(dij,cst,pln)
% [resultGUI,optimizer] = matRad_fluenceOptimization(dij,cst,pln,wInit)
%
% input
% dij: matRad dij struct
% cst: matRad cst struct
% pln: matRad pln struct
% wInit: (optional) custom weights to initialize problems
%
% output
% resultGUI: struct containing optimized fluence vector, dose, and (for
Expand Down Expand Up @@ -109,7 +111,9 @@

end
% calculate initial beam intensities wInit
if strcmp(pln.propOpt.bioOptimization,'const_RBExD') && strcmp(pln.radiationMode,'protons')
if exist('wInit','var')
%do Nothing
elseif strcmp(pln.propOpt.bioOptimization,'const_RBExD') && strcmp(pln.radiationMode,'protons')

% check if a constant RBE is defined - if not use 1.1
if ~isfield(dij,'RBE')
Expand Down
10 changes: 5 additions & 5 deletions optimization/optimizer/matRad_OptimizerIPOPT.m
Original file line number Diff line number Diff line change
Expand Up @@ -64,17 +64,17 @@
obj.options.print_options_documentation = 'no';

% Termination (C.2)
obj.options.tol = 1e-8; % (Opt1)
obj.options.dual_inf_tol = 1; % (Opt2)
obj.options.tol = 1e-10; % (Opt1)
obj.options.dual_inf_tol = 1e-4; % (Opt2)
obj.options.constr_viol_tol = 1e-4; % (Opt3)
obj.options.compl_inf_tol = 1e-4; % (Opt4), Optimal Solution Found if (Opt1),...,(Opt4) fullfiled

obj.options.acceptable_iter = 3; % (Acc1)
obj.options.acceptable_iter = 5; % (Acc1)
obj.options.acceptable_tol = 1e10; % (Acc2)
obj.options.acceptable_constr_viol_tol = 1e10; % (Acc3)
obj.options.acceptable_constr_viol_tol = 1e-2; % (Acc3)
obj.options.acceptable_dual_inf_tol = 1e10; % (Acc4)
obj.options.acceptable_compl_inf_tol = 1e10; % (Acc5)
obj.options.acceptable_obj_change_tol = 1e-3; % (Acc6), Solved To Acceptable Level if (Acc1),...,(Acc6) fullfiled
obj.options.acceptable_obj_change_tol = 1e-4; % (Acc6), Solved To Acceptable Level if (Acc1),...,(Acc6) fullfiled

obj.options.max_iter = matRad_cfg.propOpt.defaultMaxIter;
obj.options.max_cpu_time = 3000;
Expand Down

0 comments on commit d08fe1d

Please sign in to comment.