Implement quasi-newton scheme, with options Broyden and/or BFGS.
important is that the user can define where factorization happens with rebuild_level. Either at the beginning of the stage or at the beginning of the solution step. Factorization at every non-linear iteration is not required in this quasi-newton raphson scheme.
Factorization can only be done in direct linear solvers, thus it is important to handle this properly.
Below a scheme of the strategy:
rebuild level 0:
linear_solver->InitializeSolutionStep ----> factorizes rA
for t in range(n_time_steps):
while not converged:
update rA_n with broyden
PerformSolutionStep ---> solves rA u = F
rebuild level 1:
for t in range(n_time_steps):
linear_solver->InitializeSolutionStep ----> factorizes rA
while not converged:
update rA_n with broyden
PerformSolutionStep ---> solves rA u = F
rebuild level 2 not needed
The method will be benchmarked with the "CROW-case"
Implement quasi-newton scheme, with options Broyden and/or BFGS.
important is that the user can define where factorization happens with rebuild_level. Either at the beginning of the stage or at the beginning of the solution step. Factorization at every non-linear iteration is not required in this quasi-newton raphson scheme.
Factorization can only be done in direct linear solvers, thus it is important to handle this properly.
Below a scheme of the strategy:
rebuild level 0:
rebuild level 1:
rebuild level 2 not needed
The method will be benchmarked with the "CROW-case"