Dear PETSc developers, Is the active set in NewtonRSLS defined differently from the reference* you give in the documentation on purpose? The reference defines the active set as: x_i = 0 and F_i > 0, whilst the PETSc code defines it as x_i = 0 and F_i >= 0 (vi.c: 356) :
!((PetscRealPart(x[i]) > PetscRealPart(xl[i]) + 1.e-8 || (PetscRealPart(f[i]) < 0.0) So PETSc freezes the variables if f[i] == 0. I've been using the Newton RSLS method to ensure positivity in a subsurface flow problem I'm working on. My solution stays almost constant for two timesteps (seemingly independent of the size of the timestep), before it goes towards the expected solution. >From my initial conditions, certain variables are frozen because x_i = 0 and f[i] = 0, and I was wondering if that could be the cause of my issue. *: - T. S. Munson, and S. Benson. Flexible Complementarity Solvers for Large-Scale Applications, Optimization Methods and Software, 21 (2006). Regards, Ozzy
