function y_suffix = IterPartitionandSolve(base_folder, base_file_name, y_circle_pos) import com.comsol.model.* import com.comsol.model.util.* base_file_path = fullfile(base_folder, base_file_name); output_folder = fullfile(base_folder, 'TestIteration'); if ~exist(output_folder, 'dir') mkdir(output_folder); end [~, file_name, ~] = fileparts(base_file_path); save_name = sprintf('%s_y=%.3f.mph', file_name, y_circle_pos); save_path = fullfile(output_folder, save_name); if exist(save_path, 'file') disp(['Model already solved for y = ', num2str(y_circle_pos), ... ' (file exists: ', save_name, ')']); y_suffix = save_name; return end tic; disp(['>> Running solve for y = ', num2str(y_circle_pos), ' ...']); ModelUtil.showProgress(true); model = mphload(base_file_path); model.component('comp1').geom('geom1').feature('wp1').geom.feature('c1').set('pos', [10 y_circle_pos]); model.component('comp1').geom('geom1').feature('wp1').geom.run('c1'); model.component('comp1').geom('geom1').run; model.study('std2').run; mphsave(model, save_path); y_suffix = save_name; disp(['Solved and saved: ', save_path]); toc; disp('== Solving Script completed. Total elapsed time above.'); ModelUtil.remove('model'); clear model; ModelUtil.clear; java.lang.System.gc; end