182 const std::string type)
191 if (type ==
"Bifurcation")
196 for (
int i = 0; i < 3; ++i)
198 GetC(c[i],
beta[i], Au[i], A0[i], alpha[i]);
204 J.SetValue(0, 3, c[0] / Au[0]);
212 J.SetValue(1, 4, -c[1] / Au[1]);
220 J.SetValue(2, 5, -c[2] / Au[2]);
222 J.SetValue(3, 0, Au[0]);
223 J.SetValue(3, 1, -Au[1]);
224 J.SetValue(3, 2, -Au[2]);
225 J.SetValue(3, 3, uu[0]);
226 J.SetValue(3, 4, -uu[1]);
227 J.SetValue(3, 5, -uu[2]);
229 J.SetValue(4, 0, 2 * uu[0]);
230 J.SetValue(4, 1, -2 * uu[1]);
232 J.SetValue(4, 3, 2 * c[0] * c[0] / Au[0]);
233 J.SetValue(4, 4, -2 * c[1] * c[1] / Au[1]);
236 J.SetValue(5, 0, 2 * uu[0]);
238 J.SetValue(5, 2, -2 * uu[2]);
239 J.SetValue(5, 3, 2 * c[0] * c[0] / Au[0]);
241 J.SetValue(5, 5, -2 * c[2] * c[2] / Au[2]);
246 else if (type ==
"Merge")
251 for (
int i = 0; i < 3; ++i)
253 GetC(c[i],
beta[i], Au[i], A0[i], alpha[i]);
259 J.SetValue(0, 3, -c[0] / Au[0]);
267 J.SetValue(1, 4, c[1] / Au[1]);
275 J.SetValue(2, 5, c[2] / Au[2]);
277 J.SetValue(3, 0, Au[0]);
278 J.SetValue(3, 1, -Au[1]);
279 J.SetValue(3, 2, -Au[2]);
280 J.SetValue(3, 3, uu[0]);
281 J.SetValue(3, 4, -uu[1]);
282 J.SetValue(3, 5, -uu[2]);
284 J.SetValue(4, 0, 2 * uu[0]);
285 J.SetValue(4, 1, -2 * uu[1]);
287 J.SetValue(4, 3, 2 * c[0] * c[0] / Au[0]);
288 J.SetValue(4, 4, -2 * c[1] * c[1] / Au[1]);
291 J.SetValue(5, 0, 2 * uu[0]);
293 J.SetValue(5, 2, -2 * uu[2]);
294 J.SetValue(5, 3, 2 * c[0] * c[0] / Au[0]);
296 J.SetValue(5, 5, -2 * c[2] * c[2] / Au[2]);
301 else if (type ==
"Interface")
306 for (
int i = 0; i < 2; ++i)
308 GetC(c[i],
beta[i], Au[i], A0[i], alpha[i]);
313 J.SetValue(0, 2, c[0] / Au[0]);
319 J.SetValue(1, 3, -c[1] / Au[1]);
321 J.SetValue(2, 0, Au[0]);
322 J.SetValue(2, 1, -Au[1]);
323 J.SetValue(2, 2, uu[0]);
324 J.SetValue(2, 3, -uu[1]);
326 J.SetValue(3, 0, 2 * uu[0]);
327 J.SetValue(3, 1, -2 * uu[1]);
328 J.SetValue(3, 2, 2 * c[0] * c[0] / Au[0]);
329 J.SetValue(3, 3, -2 * c[1] * c[1] / Au[1]);