Integrate Vector Laplacian By Parts For FEM
$begingroup$
I am currently trying to solve the following, vectorial Poisson equation using the FEM technique:
$$-nabla^2 vec{A}=vec{J} quad forall xinOmega$$
Now I know in the case of the scalar Poisson equation $-nabla^2 varphi=rho$ one can derive the weak form of the PDE by introducing a scalar test function $v$ which is multiplied with the PDE and integrated over $Omega$ using integration by parts:
$$int_{Omega} (nabla^2varphi) v mathrm{d}x=int_{partialOmega} (vec{nabla}varphi) v mathrm{d}vec{omega}-int_{Omega} (vec{nabla}varphi) cdot(vec{nabla}v) mathrm{d}x$$
My question is how this approach can be applied to the vectorial Poisson equation? In order to do so, one would have to integrate the following expression by parts (where $vec{v}$ is a vectorial test function):
$$int_{Omega} (nabla^2vec{A})cdotvec{v} mathrm{d}x$$
However, I am struggling to do this integration. I guess one would have to generalize the following identity for scalar functions $varphi$
$$vec{nabla}cdot(vvec{nabla}varphi)=(nabla^2varphi) v+(vec{nabla}varphi)cdot(vec{nabla}v)$$
into an identity of the following form for vectorial functions $vec{A}$
$$vec{nabla}cdot(...)=(nabla^2vec{A})vec{v}+(...)$$
integration ordinary-differential-equations multivariable-calculus partial-derivative
$endgroup$
add a comment |
$begingroup$
I am currently trying to solve the following, vectorial Poisson equation using the FEM technique:
$$-nabla^2 vec{A}=vec{J} quad forall xinOmega$$
Now I know in the case of the scalar Poisson equation $-nabla^2 varphi=rho$ one can derive the weak form of the PDE by introducing a scalar test function $v$ which is multiplied with the PDE and integrated over $Omega$ using integration by parts:
$$int_{Omega} (nabla^2varphi) v mathrm{d}x=int_{partialOmega} (vec{nabla}varphi) v mathrm{d}vec{omega}-int_{Omega} (vec{nabla}varphi) cdot(vec{nabla}v) mathrm{d}x$$
My question is how this approach can be applied to the vectorial Poisson equation? In order to do so, one would have to integrate the following expression by parts (where $vec{v}$ is a vectorial test function):
$$int_{Omega} (nabla^2vec{A})cdotvec{v} mathrm{d}x$$
However, I am struggling to do this integration. I guess one would have to generalize the following identity for scalar functions $varphi$
$$vec{nabla}cdot(vvec{nabla}varphi)=(nabla^2varphi) v+(vec{nabla}varphi)cdot(vec{nabla}v)$$
into an identity of the following form for vectorial functions $vec{A}$
$$vec{nabla}cdot(...)=(nabla^2vec{A})vec{v}+(...)$$
integration ordinary-differential-equations multivariable-calculus partial-derivative
$endgroup$
$begingroup$
Perhaps you'll find my old post useful: math.stackexchange.com/questions/745000/greens-first-identity. Best, Daniel.
$endgroup$
– Dmoreno
Dec 29 '18 at 15:21
$begingroup$
Thank you for your response. It seems like the vector calculus identity $nabla cdot(mathbf{T} cdot vec{omega} ) = T:nablavec{omega} + (nabla cdot mathbf{T}) cdotvec{omega}$ which you linked solves the problem. I was able to come to the same solution with some different reasoning. I'll check the identity with some symbolic math software and then formulate an answer to my own question.
$endgroup$
– Mantabit
Dec 29 '18 at 18:39
$begingroup$
Glad to help @Mantabit. Best, Daniel.
$endgroup$
– Dmoreno
Dec 30 '18 at 18:02
add a comment |
$begingroup$
I am currently trying to solve the following, vectorial Poisson equation using the FEM technique:
$$-nabla^2 vec{A}=vec{J} quad forall xinOmega$$
Now I know in the case of the scalar Poisson equation $-nabla^2 varphi=rho$ one can derive the weak form of the PDE by introducing a scalar test function $v$ which is multiplied with the PDE and integrated over $Omega$ using integration by parts:
$$int_{Omega} (nabla^2varphi) v mathrm{d}x=int_{partialOmega} (vec{nabla}varphi) v mathrm{d}vec{omega}-int_{Omega} (vec{nabla}varphi) cdot(vec{nabla}v) mathrm{d}x$$
My question is how this approach can be applied to the vectorial Poisson equation? In order to do so, one would have to integrate the following expression by parts (where $vec{v}$ is a vectorial test function):
$$int_{Omega} (nabla^2vec{A})cdotvec{v} mathrm{d}x$$
However, I am struggling to do this integration. I guess one would have to generalize the following identity for scalar functions $varphi$
$$vec{nabla}cdot(vvec{nabla}varphi)=(nabla^2varphi) v+(vec{nabla}varphi)cdot(vec{nabla}v)$$
into an identity of the following form for vectorial functions $vec{A}$
$$vec{nabla}cdot(...)=(nabla^2vec{A})vec{v}+(...)$$
integration ordinary-differential-equations multivariable-calculus partial-derivative
$endgroup$
I am currently trying to solve the following, vectorial Poisson equation using the FEM technique:
$$-nabla^2 vec{A}=vec{J} quad forall xinOmega$$
Now I know in the case of the scalar Poisson equation $-nabla^2 varphi=rho$ one can derive the weak form of the PDE by introducing a scalar test function $v$ which is multiplied with the PDE and integrated over $Omega$ using integration by parts:
$$int_{Omega} (nabla^2varphi) v mathrm{d}x=int_{partialOmega} (vec{nabla}varphi) v mathrm{d}vec{omega}-int_{Omega} (vec{nabla}varphi) cdot(vec{nabla}v) mathrm{d}x$$
My question is how this approach can be applied to the vectorial Poisson equation? In order to do so, one would have to integrate the following expression by parts (where $vec{v}$ is a vectorial test function):
$$int_{Omega} (nabla^2vec{A})cdotvec{v} mathrm{d}x$$
However, I am struggling to do this integration. I guess one would have to generalize the following identity for scalar functions $varphi$
$$vec{nabla}cdot(vvec{nabla}varphi)=(nabla^2varphi) v+(vec{nabla}varphi)cdot(vec{nabla}v)$$
into an identity of the following form for vectorial functions $vec{A}$
$$vec{nabla}cdot(...)=(nabla^2vec{A})vec{v}+(...)$$
integration ordinary-differential-equations multivariable-calculus partial-derivative
integration ordinary-differential-equations multivariable-calculus partial-derivative
edited Dec 29 '18 at 18:36
Mantabit
asked Dec 29 '18 at 13:32
MantabitMantabit
164
164
$begingroup$
Perhaps you'll find my old post useful: math.stackexchange.com/questions/745000/greens-first-identity. Best, Daniel.
$endgroup$
– Dmoreno
Dec 29 '18 at 15:21
$begingroup$
Thank you for your response. It seems like the vector calculus identity $nabla cdot(mathbf{T} cdot vec{omega} ) = T:nablavec{omega} + (nabla cdot mathbf{T}) cdotvec{omega}$ which you linked solves the problem. I was able to come to the same solution with some different reasoning. I'll check the identity with some symbolic math software and then formulate an answer to my own question.
$endgroup$
– Mantabit
Dec 29 '18 at 18:39
$begingroup$
Glad to help @Mantabit. Best, Daniel.
$endgroup$
– Dmoreno
Dec 30 '18 at 18:02
add a comment |
$begingroup$
Perhaps you'll find my old post useful: math.stackexchange.com/questions/745000/greens-first-identity. Best, Daniel.
$endgroup$
– Dmoreno
Dec 29 '18 at 15:21
$begingroup$
Thank you for your response. It seems like the vector calculus identity $nabla cdot(mathbf{T} cdot vec{omega} ) = T:nablavec{omega} + (nabla cdot mathbf{T}) cdotvec{omega}$ which you linked solves the problem. I was able to come to the same solution with some different reasoning. I'll check the identity with some symbolic math software and then formulate an answer to my own question.
$endgroup$
– Mantabit
Dec 29 '18 at 18:39
$begingroup$
Glad to help @Mantabit. Best, Daniel.
$endgroup$
– Dmoreno
Dec 30 '18 at 18:02
$begingroup$
Perhaps you'll find my old post useful: math.stackexchange.com/questions/745000/greens-first-identity. Best, Daniel.
$endgroup$
– Dmoreno
Dec 29 '18 at 15:21
$begingroup$
Perhaps you'll find my old post useful: math.stackexchange.com/questions/745000/greens-first-identity. Best, Daniel.
$endgroup$
– Dmoreno
Dec 29 '18 at 15:21
$begingroup$
Thank you for your response. It seems like the vector calculus identity $nabla cdot(mathbf{T} cdot vec{omega} ) = T:nablavec{omega} + (nabla cdot mathbf{T}) cdotvec{omega}$ which you linked solves the problem. I was able to come to the same solution with some different reasoning. I'll check the identity with some symbolic math software and then formulate an answer to my own question.
$endgroup$
– Mantabit
Dec 29 '18 at 18:39
$begingroup$
Thank you for your response. It seems like the vector calculus identity $nabla cdot(mathbf{T} cdot vec{omega} ) = T:nablavec{omega} + (nabla cdot mathbf{T}) cdotvec{omega}$ which you linked solves the problem. I was able to come to the same solution with some different reasoning. I'll check the identity with some symbolic math software and then formulate an answer to my own question.
$endgroup$
– Mantabit
Dec 29 '18 at 18:39
$begingroup$
Glad to help @Mantabit. Best, Daniel.
$endgroup$
– Dmoreno
Dec 30 '18 at 18:02
$begingroup$
Glad to help @Mantabit. Best, Daniel.
$endgroup$
– Dmoreno
Dec 30 '18 at 18:02
add a comment |
1 Answer
1
active
oldest
votes
$begingroup$
Not sure if this is useful, but have a look at this identity for the divergence of a matrix $mathbf{A}$ acting on a vector $vec{v}$:
$$vecnabla cdot (mathbf{A}vec{v}) = (vecnabla cdot mathbf{A}) vec{v} + operatorname{Tr}left(mathbf{A}(vecnablavec{v})right)$$
Now if you take $mathbf{A}$ to be the Jacobi matrix of your vector field $vec{A}$, i.e. $mathbf{A}= vec{nabla} vec{A}$, you get
$$vecnabla cdot big((vec{nabla} vec{A})vec{v}big) = left(vecnabla cdot (vec{nabla} vec{A})right) vec{v} + operatorname{Tr}left((vec{nabla} vec{A})(vecnablavec{v})right) = left(nabla^2vec{A}right) vec{v} + operatorname{Tr}left((vec{nabla} vec{A})(vecnablavec{v})right)$$
$endgroup$
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "69"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3055842%2fintegrate-vector-laplacian-by-parts-for-fem%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Not sure if this is useful, but have a look at this identity for the divergence of a matrix $mathbf{A}$ acting on a vector $vec{v}$:
$$vecnabla cdot (mathbf{A}vec{v}) = (vecnabla cdot mathbf{A}) vec{v} + operatorname{Tr}left(mathbf{A}(vecnablavec{v})right)$$
Now if you take $mathbf{A}$ to be the Jacobi matrix of your vector field $vec{A}$, i.e. $mathbf{A}= vec{nabla} vec{A}$, you get
$$vecnabla cdot big((vec{nabla} vec{A})vec{v}big) = left(vecnabla cdot (vec{nabla} vec{A})right) vec{v} + operatorname{Tr}left((vec{nabla} vec{A})(vecnablavec{v})right) = left(nabla^2vec{A}right) vec{v} + operatorname{Tr}left((vec{nabla} vec{A})(vecnablavec{v})right)$$
$endgroup$
add a comment |
$begingroup$
Not sure if this is useful, but have a look at this identity for the divergence of a matrix $mathbf{A}$ acting on a vector $vec{v}$:
$$vecnabla cdot (mathbf{A}vec{v}) = (vecnabla cdot mathbf{A}) vec{v} + operatorname{Tr}left(mathbf{A}(vecnablavec{v})right)$$
Now if you take $mathbf{A}$ to be the Jacobi matrix of your vector field $vec{A}$, i.e. $mathbf{A}= vec{nabla} vec{A}$, you get
$$vecnabla cdot big((vec{nabla} vec{A})vec{v}big) = left(vecnabla cdot (vec{nabla} vec{A})right) vec{v} + operatorname{Tr}left((vec{nabla} vec{A})(vecnablavec{v})right) = left(nabla^2vec{A}right) vec{v} + operatorname{Tr}left((vec{nabla} vec{A})(vecnablavec{v})right)$$
$endgroup$
add a comment |
$begingroup$
Not sure if this is useful, but have a look at this identity for the divergence of a matrix $mathbf{A}$ acting on a vector $vec{v}$:
$$vecnabla cdot (mathbf{A}vec{v}) = (vecnabla cdot mathbf{A}) vec{v} + operatorname{Tr}left(mathbf{A}(vecnablavec{v})right)$$
Now if you take $mathbf{A}$ to be the Jacobi matrix of your vector field $vec{A}$, i.e. $mathbf{A}= vec{nabla} vec{A}$, you get
$$vecnabla cdot big((vec{nabla} vec{A})vec{v}big) = left(vecnabla cdot (vec{nabla} vec{A})right) vec{v} + operatorname{Tr}left((vec{nabla} vec{A})(vecnablavec{v})right) = left(nabla^2vec{A}right) vec{v} + operatorname{Tr}left((vec{nabla} vec{A})(vecnablavec{v})right)$$
$endgroup$
Not sure if this is useful, but have a look at this identity for the divergence of a matrix $mathbf{A}$ acting on a vector $vec{v}$:
$$vecnabla cdot (mathbf{A}vec{v}) = (vecnabla cdot mathbf{A}) vec{v} + operatorname{Tr}left(mathbf{A}(vecnablavec{v})right)$$
Now if you take $mathbf{A}$ to be the Jacobi matrix of your vector field $vec{A}$, i.e. $mathbf{A}= vec{nabla} vec{A}$, you get
$$vecnabla cdot big((vec{nabla} vec{A})vec{v}big) = left(vecnabla cdot (vec{nabla} vec{A})right) vec{v} + operatorname{Tr}left((vec{nabla} vec{A})(vecnablavec{v})right) = left(nabla^2vec{A}right) vec{v} + operatorname{Tr}left((vec{nabla} vec{A})(vecnablavec{v})right)$$
answered Dec 29 '18 at 22:02
mechanodroidmechanodroid
28.9k62548
28.9k62548
add a comment |
add a comment |
Thanks for contributing an answer to Mathematics Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3055842%2fintegrate-vector-laplacian-by-parts-for-fem%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
$begingroup$
Perhaps you'll find my old post useful: math.stackexchange.com/questions/745000/greens-first-identity. Best, Daniel.
$endgroup$
– Dmoreno
Dec 29 '18 at 15:21
$begingroup$
Thank you for your response. It seems like the vector calculus identity $nabla cdot(mathbf{T} cdot vec{omega} ) = T:nablavec{omega} + (nabla cdot mathbf{T}) cdotvec{omega}$ which you linked solves the problem. I was able to come to the same solution with some different reasoning. I'll check the identity with some symbolic math software and then formulate an answer to my own question.
$endgroup$
– Mantabit
Dec 29 '18 at 18:39
$begingroup$
Glad to help @Mantabit. Best, Daniel.
$endgroup$
– Dmoreno
Dec 30 '18 at 18:02