You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on May 18, 2019. It is now read-only.
@@ -796,6 +798,7 @@ int solve_nonlinear_system(DATA *data, threadData_t *threadData, int sysNumber)
796
798
intequidistantHomotopy=0;
797
799
intsolveWithHomotopySolver=0;
798
800
intj;
801
+
structdataNewtonAndHybrid*mixedSolverData;
799
802
charbuffer[4096];
800
803
FILE*pFile=NULL;
801
804
@@ -809,7 +812,7 @@ int solve_nonlinear_system(DATA *data, threadData_t *threadData, int sysNumber)
809
812
rt_ext_tp_tick(&nonlinsys->totalTimeClock);
810
813
811
814
/* grab the initial guess */
812
-
infoStreamPrint(LOG_NLS_EXTRAPOLATE, 1, "############ Start new iteration for system %ld at time %g ############", nonlinsys->equationIndex, data->localData[0]->timeValue);
815
+
infoStreamPrint(LOG_NLS_EXTRAPOLATE, 1, "############ Start new iteration for nonlinear system %ld at time %g ############", nonlinsys->equationIndex, data->localData[0]->timeValue);
813
816
/* if last solving is too long ago use just old values */
814
817
if (fabs(data->localData[0]->timeValue-nonlinsys->lastTimeSolved) <5*data->simulationInfo->stepSize||casualTearingSet)
815
818
{
@@ -847,11 +850,31 @@ int solve_nonlinear_system(DATA *data, threadData_t *threadData, int sysNumber)
847
850
/* If the adaptive local/global homotopy approach is activated and the component contains the homotopy operator
848
851
use the HOMOTOPY SOLVER, otherwise use the selected solver */
849
852
if (solveWithHomotopySolver) {
850
-
if (data->callback->useHomotopy==3)
851
-
infoStreamPrint(LOG_INIT, 0, "Local homotopy with adaptive step size started for system %d.", sysNumber);
852
853
data->simulationInfo->lambda=0.0;
854
+
if (data->callback->useHomotopy==3) {
855
+
// First solve the lambda0-system separately
856
+
infoStreamPrint(LOG_INIT, 0, "Local homotopy with adaptive step size started for nonlinear system %d.", sysNumber);
if (!(equidistantHomotopy&&omc_flag[FLAG_HOMOTOPY_ON_FIRST_TRY])) {
@@ -870,12 +893,12 @@ int solve_nonlinear_system(DATA *data, threadData_t *threadData, int sysNumber)
870
893
if (!omc_flag[FLAG_HOMOTOPY_ON_FIRST_TRY])
871
894
warningStreamPrint(LOG_ASSERT, 0, "Failed to solve initial system %d without homotopy method. The local homotopy method with equidistant step size is used now.", sysNumber);
872
895
else
873
-
infoStreamPrint(LOG_INIT, 0, "Local homotopy with equidistant step size started for system %d.", sysNumber);
896
+
infoStreamPrint(LOG_INIT, 0, "Local homotopy with equidistant step size started for nonlinear system %d.", sysNumber);
0 commit comments