1a7e14dcfSSatish Balay #ifndef __TAO_IPM_H 2a7e14dcfSSatish Balay #define __TAO_IPM_H 3*af0996ceSBarry Smith #include <petsc/private/taoimpl.h> 4a7e14dcfSSatish Balay 5a7e14dcfSSatish Balay /* 6a7e14dcfSSatish Balay Context for Interior-Point Method 7a7e14dcfSSatish Balay */ 8a7e14dcfSSatish Balay 9a7e14dcfSSatish Balay typedef struct { 10a7e14dcfSSatish Balay PetscInt mi,me,n,nxb,nib,nb,nslack; 11a7e14dcfSSatish Balay PetscInt nuser_inequalities; 12a7e14dcfSSatish Balay PetscInt nxlb,nxub,niub,nilb; 13a7e14dcfSSatish Balay PetscScalar sig,mu,taumin,dec; 14a7e14dcfSSatish Balay PetscScalar muaff; 15a7e14dcfSSatish Balay TaoLineSearch lag_ls; 16a7e14dcfSSatish Balay Vec work, rhs_x,save_x; 17a7e14dcfSSatish Balay Vec lamdai, dlamdai, rhs_lamdai, save_lamdai; 18a7e14dcfSSatish Balay Vec lamdae, dlamdae, rhs_lamdae, save_lamdae; 19a7e14dcfSSatish Balay Vec s,ds,rhs_s,save_s; 20a7e14dcfSSatish Balay Vec ci; 21a7e14dcfSSatish Balay Vec Zero_nb, One_nb,Inf_nb; 22a7e14dcfSSatish Balay PetscScalar kkt_f; /* d'*x + (1/2)*x'*H*x; */ 23a7e14dcfSSatish Balay Vec rd; /* H*x + d + Ae'*lamdae - Ai'*lamdai */ 24a7e14dcfSSatish Balay Vec rpe; /* residual Ae*x - be */ 25a7e14dcfSSatish Balay Vec rpi; /* Ai*x - yi - bi */ 26a7e14dcfSSatish Balay Vec complementarity; /* yi.*lamdai */ 27a7e14dcfSSatish Balay PetscScalar phi; 28a7e14dcfSSatish Balay Mat L; /* diag(lamdai) */ 29a7e14dcfSSatish Balay Mat Y; /* diag(yi) */ 30a7e14dcfSSatish Balay Mat Ai; /* JacI (lb) 31a7e14dcfSSatish Balay -JacI (ub) 32a7e14dcfSSatish Balay I (xlb) 33a7e14dcfSSatish Balay -I (xub) */ 34a7e14dcfSSatish Balay Mat K; /* [ H , 0, Ae',-Ai']; 35a7e14dcfSSatish Balay [Ae , 0, 0 , 0]; 36a7e14dcfSSatish Balay [Ai ,-Imi, 0 , 0]; 37a7e14dcfSSatish Balay [ 0 , L , 0 , Y ]; */ 38a7e14dcfSSatish Balay 39a7e14dcfSSatish Balay Vec bigrhs; /* rhs [x; lamdae; yi; lamdai] */ 40a7e14dcfSSatish Balay Vec bigstep; /* [dx; dyi; dlamdae; dlamdai] */ 41a7e14dcfSSatish Balay PetscBool monitorkkt; 42a7e14dcfSSatish Balay PetscScalar alpha1,alpha2; 43a7e14dcfSSatish Balay PetscScalar pushs,pushnu; 44a7e14dcfSSatish Balay IS isxl,isxu,isil,isiu; 45a7e14dcfSSatish Balay VecScatter ci_scat,xl_scat,xu_scat; 46a7e14dcfSSatish Balay VecScatter step1,step2,step3,step4; 47a7e14dcfSSatish Balay VecScatter rhs1,rhs2,rhs3,rhs4; 48a7e14dcfSSatish Balay } TAO_IPM; 49a7e14dcfSSatish Balay 50a7e14dcfSSatish Balay #endif /* ifndef __TAO_IPM_H */ 51