2
$\begingroup$

I am trying to solve the equilibrium equation $\text{DIV } \mathbf P(\textbf{u}(x,y)) = \mathbf{f}$, where $\mathbf P$ is the stress tensor defined by

$$ \mathbf P = \mathbf F + (1-\det\mathbf F)^2\quad\text{with}\quad \mathbf F = \text{GRAD } \mathbf u + \mathbf I. $$

I implemented the equations above in Mathematica as follows

ns[x,y] = {nx[x,y], ny[x,y]};
F = Inactive[Grad][ns[x,y], {x,y}] + IdentityMatrix[2];
J = Det[F] //FullSimplify;
μ = 10;
λ = 5;

P = λ F + μ (1 - J)^2

solInt = y * x^2;
equation = Inactive[Div][P, {x, y}] == Inactive[Grad][solInt, {x, y}] ;
boundaryConds1 = {ns[x, y] == {3, 0}};
boundaryConds2 = {ns[x, y] == {0, 0}};
boundaryConds3 = {ns[x, y] == {0, 0}};

Ω = Rectangle[{0, 0}, {1, 1}]
un = NDSolveValue[{equation,
   { 
      DirichletCondition[boundaryConds1, x == 1],
      DirichletCondition[boundaryConds2, x == 0],
      DirichletCondition[boundaryConds3, y == 0]
    }}, ns[x, y], {x, y} ∈ Ω]

This gives me the error:

"There are more dependent variables, {nx[x, y], ny[x, y]}, than equations, so the system is underdetermined."

I suspect that the culprit is the fact that Mathematica does not understand that the equation, once evaluated, will yield a vector with two entries.

Any way to fix the issue?

$\endgroup$
5
  • $\begingroup$ According to this answer, I indeed need to do something of the sort. However, they don't expose how it can be done. $\endgroup$
    – rmk236
    Commented Sep 22, 2020 at 15:36
  • $\begingroup$ You are using vector operators like Grad and Div. However, you set them all to: inactive. If they do not act, you have only 1 equation, not a vector equation. Then NDSolve complains that you have 1 equation and 2 dependent variables. $\endgroup$ Commented Sep 22, 2020 at 16:36
  • $\begingroup$ It looks like NDSolve resists to solve this kind of equations. $\endgroup$ Commented Sep 23, 2020 at 10:59
  • $\begingroup$ @DanielHuber, yes they are set to inactive. However, if they are left as active, NDSolve is not able to create the weak form necessary to calculate the answer. If I run this script without the Inactive, The maximum derivative order of the nonlinear PDE coefficients for the Finite Element Method is larger than 1. It may help to rewrite the PDE in inactive form.. $\endgroup$
    – rmk236
    Commented Sep 24, 2020 at 7:29
  • $\begingroup$ I do not know a good answer to this. But have you seen: "mathematica.stackexchange.com/questions/197046/…" and "mathematica.stackexchange.com/questions/195477/…". If nothing helps I would write a message to support@wolfram,com $\endgroup$ Commented Sep 24, 2020 at 8:31

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.