66 int iterationNumber = 0);
68 int iterationNumber = 0);
99 ::std::unique_ptr<real_t[]>
a,
b,
c,
d;
116 real_t asyinit, asyincr, asydecr;
117 real_t xmamieps, lowmin, lowmax, uppmin, uppmax, zz;
118 ::std::unique_ptr<real_t[]> factor;
121 ::std::unique_ptr<real_t[]> xo1, xo2;
127 bool isInitialized =
false;
137 void InitData(
real_t *xval);
157 MMASubBase(
MMA& mma) :mma_ref(mma) {}
160 virtual ~MMASubBase() {}
164 void Update(
const real_t* dfdx,
175 ::std::unique_ptr<MMASubBase> mSubProblem;
177 friend class MMASubSvanberg;
179 class MMASubSvanberg:
public MMASubBase
189 MPI_Allreduce(&
nVar, &nVar_global, 1, MPI_INT, MPI_SUM, mma.comm);
195 ~MMASubSvanberg() =
default;
207 int ittt, itto, itera, nVar_global;
209 real_t epsi, delz, dz, dzet, stmxx, stmalfa, stmbeta,
210 sum, stminv, steg, zold, zetold,
211 residunorm, residumax, resinew, raa0, albefa, move, xmamieps;
213 ::std::unique_ptr<real_t[]> sum1, ux1, xl1, plam, qlam, gvec, residu, GG, delx,
216 dellamyi, diagx, diagy, diaglamyi, bb, bb1, Alam, AA, AA1,
217 dlam, dx, dy, dxsi, deta, dmu, Axx, axz, ds, xx, dxx,
218 stepxx, stepalfa, stepbeta, xold, yold,
219 lamold, xsiold, etaold, muold, sold, p0, q0, P, Q, alfa,
225 real_t stmxx_global = 0.0;
226 real_t stmalfa_global = 0.0;
227 real_t stmbeta_global = 0.0;
229 ::std::unique_ptr<real_t[]> b_local, gvec_local, Alam_local, sum_local,
233 void AllocSubData(
int nVar,
int nCon);