# [Getdp] Some questions

Ruth Vazquez Sabariego ruth.sabariego at kuleuven.be
Thu Feb 7 10:14:32 CET 2019

```
On 6 Feb 2019, at 14:37, JORGE MIAJA HERNANDEZ <j.miaja at alumnos.upm.es<mailto:j.miaja at alumnos.upm.es>> wrote:

Dear all,

I have been reading the documentation and creating some magneto-static and magneto-dynamic simple tests and there are a few things I cant quite understand, I was hoping somebody could help me clarify these points,

1- taking a look at several non-linear examples, I have noticed two different ways to implement the correction term that deals with the non-linearity of the system using Newton-Raphson, are these two expressions exactly identical? Or does one provide better results than the other?

expression 1:
Integral { [ dhdb[{d a}] * Dof{d a} , {d a} ];
In Vol_NL_Mag; Jacobian Vol; Integration Gauss_v; }
Integral { [ - dhdb[{d a}] * {d a} , {d a} ];
In Vol_NL_Mag; Jacobian Vol; Integration Gauss_v; }

expression 2:
Integral { JacNL[dhdb[{d a}] * Dof{d a} , {d a} ];
In Vol_NL_Mag; Jacobian Vol; Integration Gauss_v; }

Have a look at:
http://onelab.info/wiki/Nonlinear_problems_in_GetDP

Both approaches are equivalent.
There is a difference in the resolution part in the pro file though.
The first one uses a let’s say by hand defined loop: While that stops with a condition defined by the user.

The second one goes with the function IterativeLoopN.

2- I have tried testing time loop resolutions, in order to set the InitSolution, I tried defining a constraint of type InitFromResolution,
Case {
{ Region Sur_boundary; Type InitFromResolution; NameOfResolution dir_a; }
}
// with the resolution block being (supposedly*):
{ Name dir_a;
System {
{ Name B; NameOfFormulation fixBoundary; DestinationSystem A;}
}
Operation {
Generate B; Solve B; TransferInitSolution B;  // TransferSolution B;
}
}
// the formulation being as follows:
{ Name fixBoundary;
Quantity { { Name a; Type Local; NameOfSpace VecPotA; } }
Equation {
Integral { [ Dof{a} , {a} ];
In Sur_boundary; Jacobian Sur; Integration Int; }
Integral { [ dirBoundary[] , {a} ]; // dirBoundary being a vector [0,0, X] where X could be a time function (see question 3)
In Sur_boundary; Jacobian Sur; Integration Int; }
}
}

*supposedly, since according to the documentation, TransferInitSolution is used along with "InitFromResolution", however, GetDP shows an error that reads: "Unknown type of Operation: TransferInitSolution"
(I downloaded the latest version available on January the 14th). Should I get exactly the same result if I use TransferSolution in this line?

3- In what cases would the "UpdateConstraint" operation be useful? If, for instance, I want to set up a Dirichlet boundary constraint that changes over time, how could I do it? would this work?
a) define a time function dependen on variable \$Time
b) create a constraint of type AssignFromResolution
c) at each time step call UpdateResolution so that the constraint is calculated again with the AssignFromResolution block

UpdateConstraint is useful when the links between the unknowns change in time, e.g. you may have that in case of movement.
AssignFromResolution can be useful for computing sources, e.g. at the level of the boundary, or for initialising a time domain solution.

Best

Ruth

I am greatly grateful for and really appreciate all your help provided, as well as for the software you have developed,

best regards,

--
JORGE MIAJA HERNANDEZ

_______________________________________________
getdp mailing list
getdp at onelab.info<mailto:getdp at onelab.info>
http://onelab.info/mailman/listinfo/getdp

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://onelab.info/pipermail/getdp/attachments/20190207/17302c4f/attachment.html>
```