How to calculate the gradient (vector) of a vector field?
First question from me. I hope it's clear enough.
I'm trying to make a physics simulator of magnets, magnetic interactions and such.
I've followed the formulas in Wikipedia pages, and some first results are great (same newton force value between math model and reality test).
Now I have to translate everything in a software coding; I'm using c# inside grasshopper inside Rhinoceros.
I can calculate the magnetic field vector "B" of a magnetic dipole vector "m" with this formula: wiki 4 ,
Pic 1
Anyway,
here: wiki 1 , here: wiki 2 and here: wiki 3 it says that the force is this:
Pic 2
That is the gradient of the dot product of "m"(the magnetic dipole moment vector) and "B"(the local magnetic field vector).
I've understood that the gradient is somehow "like" the slope of a function (which you can "manually" calculate by evaluating two points really close and divide their Y difference by their X distance).
For every sample point I'd like to have one gradient vector (of the local resulting magnetic field) to multiply (dot product) with whatever dipole is passing by in that iteration.
(Does this make sense? I'm not native English...)
Can I calculate the gradient by evaluating 2 points near the target location in the same way?
How?
Other ideas?
Thanks in advance.
field-theory vectors vector-analysis vector-fields
add a comment |
First question from me. I hope it's clear enough.
I'm trying to make a physics simulator of magnets, magnetic interactions and such.
I've followed the formulas in Wikipedia pages, and some first results are great (same newton force value between math model and reality test).
Now I have to translate everything in a software coding; I'm using c# inside grasshopper inside Rhinoceros.
I can calculate the magnetic field vector "B" of a magnetic dipole vector "m" with this formula: wiki 4 ,
Pic 1
Anyway,
here: wiki 1 , here: wiki 2 and here: wiki 3 it says that the force is this:
Pic 2
That is the gradient of the dot product of "m"(the magnetic dipole moment vector) and "B"(the local magnetic field vector).
I've understood that the gradient is somehow "like" the slope of a function (which you can "manually" calculate by evaluating two points really close and divide their Y difference by their X distance).
For every sample point I'd like to have one gradient vector (of the local resulting magnetic field) to multiply (dot product) with whatever dipole is passing by in that iteration.
(Does this make sense? I'm not native English...)
Can I calculate the gradient by evaluating 2 points near the target location in the same way?
How?
Other ideas?
Thanks in advance.
field-theory vectors vector-analysis vector-fields
add a comment |
First question from me. I hope it's clear enough.
I'm trying to make a physics simulator of magnets, magnetic interactions and such.
I've followed the formulas in Wikipedia pages, and some first results are great (same newton force value between math model and reality test).
Now I have to translate everything in a software coding; I'm using c# inside grasshopper inside Rhinoceros.
I can calculate the magnetic field vector "B" of a magnetic dipole vector "m" with this formula: wiki 4 ,
Pic 1
Anyway,
here: wiki 1 , here: wiki 2 and here: wiki 3 it says that the force is this:
Pic 2
That is the gradient of the dot product of "m"(the magnetic dipole moment vector) and "B"(the local magnetic field vector).
I've understood that the gradient is somehow "like" the slope of a function (which you can "manually" calculate by evaluating two points really close and divide their Y difference by their X distance).
For every sample point I'd like to have one gradient vector (of the local resulting magnetic field) to multiply (dot product) with whatever dipole is passing by in that iteration.
(Does this make sense? I'm not native English...)
Can I calculate the gradient by evaluating 2 points near the target location in the same way?
How?
Other ideas?
Thanks in advance.
field-theory vectors vector-analysis vector-fields
First question from me. I hope it's clear enough.
I'm trying to make a physics simulator of magnets, magnetic interactions and such.
I've followed the formulas in Wikipedia pages, and some first results are great (same newton force value between math model and reality test).
Now I have to translate everything in a software coding; I'm using c# inside grasshopper inside Rhinoceros.
I can calculate the magnetic field vector "B" of a magnetic dipole vector "m" with this formula: wiki 4 ,
Pic 1
Anyway,
here: wiki 1 , here: wiki 2 and here: wiki 3 it says that the force is this:
Pic 2
That is the gradient of the dot product of "m"(the magnetic dipole moment vector) and "B"(the local magnetic field vector).
I've understood that the gradient is somehow "like" the slope of a function (which you can "manually" calculate by evaluating two points really close and divide their Y difference by their X distance).
For every sample point I'd like to have one gradient vector (of the local resulting magnetic field) to multiply (dot product) with whatever dipole is passing by in that iteration.
(Does this make sense? I'm not native English...)
Can I calculate the gradient by evaluating 2 points near the target location in the same way?
How?
Other ideas?
Thanks in advance.
field-theory vectors vector-analysis vector-fields
field-theory vectors vector-analysis vector-fields
asked Dec 12 '18 at 15:04
maje90maje90
1
1
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
First of all, since the dipole $m$ on which the force acts is constant, the formula simplifies to
$$
F=nabla(mcdot B) = m^TJ_B = J_B^T m,
$$
where $J_B$ is the Jacobian matrix. See also here.
If you want to see the reason why, just work with coordinates and you find
$$
[nabla(mcdot B)]_i = frac{partial}{partial x_i} sum_{j=1}^n m_j B_j
= sum_{j=1}^n m_j frac{partial B_j}{partial x_i}
= m^T J_B.
$$
Regarding the question of how to compute $J_B$, there are several approaches:
- if $B$ has a specific closed form expression, you can of course use it to compute explicitly its gradient;
- you can use finite differences, as you mentioned;
- you can use automatic differentiation to compute (a numeric approximation of) the gradient at the same time as you compute the field itself.
The formula of B is this: en.wikipedia.org/wiki/… (note 2 in that page say the last term is ignored) So the formula is just that part B= [u0/(4*pir^3)]*[3*(mr)*r-m] (?) (how to write formulas here?) If possible I would like to use that formula... is that a "specific closed form"? Or, I'd like to use that "finite differences" method, but i dont know how to apply it with vectors. I know vector cross and dot product, and multiplication and division with numbers, but that's it... I'm truly noob with everything
– maje90
Dec 12 '18 at 20:18
add a comment |
No,
$$operatorname{grad}(vec{m}cdotvec{B}) neq m cdotoperatorname{grad}(vec{B})$$
But rather
$$begin{align}
operatorname{grad}(vec{m}cdotvec{B})_i&=partial_i (m_kB_k)\
&=(partial_im_k)B_k+(partial_iB_k)m_k\
&=J(vec{m})_{ik}B_k+J(vec{B})_{ik}m_k\
&=(J(vec{m})cdotvec{B})_i+(J(vec{B})cdotvec{m})_i
end{align}$$
Where $J(vec{m})$ is the Jacobian of $vec{m}$ and $J(vec{B})$ is the jacobian of $vec{B}$. And if $vec{m}$ is a constant vector, then you have that
$$operatorname{grad}(vec{m}cdotvec{B})=J(vec{B})cdotvec{m}$$
Oh, ok. That's great, good to know. Thank you. But still I dont know how to to do that.... Any tips?
– maje90
Dec 12 '18 at 15:53
Watch out, that's the transpose of the Jacobian! $J(B)_{ij} = partial B_i/partial x_j$
– Federico
Dec 12 '18 at 16:09
@maje90 What would you like to do?
– Botond
Dec 12 '18 at 16:13
@Federico Well, It can be defined the way I did it as well.
– Botond
Dec 12 '18 at 16:16
@Botond You can define it however you want, while the rest of us define it the way Jacobi did. It's very confusing if you write $J_Bm$ instead of $J_B^Tm$. The results are quite different.
– Federico
Dec 12 '18 at 16:18
|
show 2 more comments
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%2f3036780%2fhow-to-calculate-the-gradient-vector-of-a-vector-field%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
First of all, since the dipole $m$ on which the force acts is constant, the formula simplifies to
$$
F=nabla(mcdot B) = m^TJ_B = J_B^T m,
$$
where $J_B$ is the Jacobian matrix. See also here.
If you want to see the reason why, just work with coordinates and you find
$$
[nabla(mcdot B)]_i = frac{partial}{partial x_i} sum_{j=1}^n m_j B_j
= sum_{j=1}^n m_j frac{partial B_j}{partial x_i}
= m^T J_B.
$$
Regarding the question of how to compute $J_B$, there are several approaches:
- if $B$ has a specific closed form expression, you can of course use it to compute explicitly its gradient;
- you can use finite differences, as you mentioned;
- you can use automatic differentiation to compute (a numeric approximation of) the gradient at the same time as you compute the field itself.
The formula of B is this: en.wikipedia.org/wiki/… (note 2 in that page say the last term is ignored) So the formula is just that part B= [u0/(4*pir^3)]*[3*(mr)*r-m] (?) (how to write formulas here?) If possible I would like to use that formula... is that a "specific closed form"? Or, I'd like to use that "finite differences" method, but i dont know how to apply it with vectors. I know vector cross and dot product, and multiplication and division with numbers, but that's it... I'm truly noob with everything
– maje90
Dec 12 '18 at 20:18
add a comment |
First of all, since the dipole $m$ on which the force acts is constant, the formula simplifies to
$$
F=nabla(mcdot B) = m^TJ_B = J_B^T m,
$$
where $J_B$ is the Jacobian matrix. See also here.
If you want to see the reason why, just work with coordinates and you find
$$
[nabla(mcdot B)]_i = frac{partial}{partial x_i} sum_{j=1}^n m_j B_j
= sum_{j=1}^n m_j frac{partial B_j}{partial x_i}
= m^T J_B.
$$
Regarding the question of how to compute $J_B$, there are several approaches:
- if $B$ has a specific closed form expression, you can of course use it to compute explicitly its gradient;
- you can use finite differences, as you mentioned;
- you can use automatic differentiation to compute (a numeric approximation of) the gradient at the same time as you compute the field itself.
The formula of B is this: en.wikipedia.org/wiki/… (note 2 in that page say the last term is ignored) So the formula is just that part B= [u0/(4*pir^3)]*[3*(mr)*r-m] (?) (how to write formulas here?) If possible I would like to use that formula... is that a "specific closed form"? Or, I'd like to use that "finite differences" method, but i dont know how to apply it with vectors. I know vector cross and dot product, and multiplication and division with numbers, but that's it... I'm truly noob with everything
– maje90
Dec 12 '18 at 20:18
add a comment |
First of all, since the dipole $m$ on which the force acts is constant, the formula simplifies to
$$
F=nabla(mcdot B) = m^TJ_B = J_B^T m,
$$
where $J_B$ is the Jacobian matrix. See also here.
If you want to see the reason why, just work with coordinates and you find
$$
[nabla(mcdot B)]_i = frac{partial}{partial x_i} sum_{j=1}^n m_j B_j
= sum_{j=1}^n m_j frac{partial B_j}{partial x_i}
= m^T J_B.
$$
Regarding the question of how to compute $J_B$, there are several approaches:
- if $B$ has a specific closed form expression, you can of course use it to compute explicitly its gradient;
- you can use finite differences, as you mentioned;
- you can use automatic differentiation to compute (a numeric approximation of) the gradient at the same time as you compute the field itself.
First of all, since the dipole $m$ on which the force acts is constant, the formula simplifies to
$$
F=nabla(mcdot B) = m^TJ_B = J_B^T m,
$$
where $J_B$ is the Jacobian matrix. See also here.
If you want to see the reason why, just work with coordinates and you find
$$
[nabla(mcdot B)]_i = frac{partial}{partial x_i} sum_{j=1}^n m_j B_j
= sum_{j=1}^n m_j frac{partial B_j}{partial x_i}
= m^T J_B.
$$
Regarding the question of how to compute $J_B$, there are several approaches:
- if $B$ has a specific closed form expression, you can of course use it to compute explicitly its gradient;
- you can use finite differences, as you mentioned;
- you can use automatic differentiation to compute (a numeric approximation of) the gradient at the same time as you compute the field itself.
edited Dec 12 '18 at 16:29
answered Dec 12 '18 at 16:07
FedericoFederico
4,839514
4,839514
The formula of B is this: en.wikipedia.org/wiki/… (note 2 in that page say the last term is ignored) So the formula is just that part B= [u0/(4*pir^3)]*[3*(mr)*r-m] (?) (how to write formulas here?) If possible I would like to use that formula... is that a "specific closed form"? Or, I'd like to use that "finite differences" method, but i dont know how to apply it with vectors. I know vector cross and dot product, and multiplication and division with numbers, but that's it... I'm truly noob with everything
– maje90
Dec 12 '18 at 20:18
add a comment |
The formula of B is this: en.wikipedia.org/wiki/… (note 2 in that page say the last term is ignored) So the formula is just that part B= [u0/(4*pir^3)]*[3*(mr)*r-m] (?) (how to write formulas here?) If possible I would like to use that formula... is that a "specific closed form"? Or, I'd like to use that "finite differences" method, but i dont know how to apply it with vectors. I know vector cross and dot product, and multiplication and division with numbers, but that's it... I'm truly noob with everything
– maje90
Dec 12 '18 at 20:18
The formula of B is this: en.wikipedia.org/wiki/… (note 2 in that page say the last term is ignored) So the formula is just that part B= [u0/(4*pir^3)]*[3*(mr)*r-m] (?) (how to write formulas here?) If possible I would like to use that formula... is that a "specific closed form"? Or, I'd like to use that "finite differences" method, but i dont know how to apply it with vectors. I know vector cross and dot product, and multiplication and division with numbers, but that's it... I'm truly noob with everything
– maje90
Dec 12 '18 at 20:18
The formula of B is this: en.wikipedia.org/wiki/… (note 2 in that page say the last term is ignored) So the formula is just that part B= [u0/(4*pir^3)]*[3*(mr)*r-m] (?) (how to write formulas here?) If possible I would like to use that formula... is that a "specific closed form"? Or, I'd like to use that "finite differences" method, but i dont know how to apply it with vectors. I know vector cross and dot product, and multiplication and division with numbers, but that's it... I'm truly noob with everything
– maje90
Dec 12 '18 at 20:18
add a comment |
No,
$$operatorname{grad}(vec{m}cdotvec{B}) neq m cdotoperatorname{grad}(vec{B})$$
But rather
$$begin{align}
operatorname{grad}(vec{m}cdotvec{B})_i&=partial_i (m_kB_k)\
&=(partial_im_k)B_k+(partial_iB_k)m_k\
&=J(vec{m})_{ik}B_k+J(vec{B})_{ik}m_k\
&=(J(vec{m})cdotvec{B})_i+(J(vec{B})cdotvec{m})_i
end{align}$$
Where $J(vec{m})$ is the Jacobian of $vec{m}$ and $J(vec{B})$ is the jacobian of $vec{B}$. And if $vec{m}$ is a constant vector, then you have that
$$operatorname{grad}(vec{m}cdotvec{B})=J(vec{B})cdotvec{m}$$
Oh, ok. That's great, good to know. Thank you. But still I dont know how to to do that.... Any tips?
– maje90
Dec 12 '18 at 15:53
Watch out, that's the transpose of the Jacobian! $J(B)_{ij} = partial B_i/partial x_j$
– Federico
Dec 12 '18 at 16:09
@maje90 What would you like to do?
– Botond
Dec 12 '18 at 16:13
@Federico Well, It can be defined the way I did it as well.
– Botond
Dec 12 '18 at 16:16
@Botond You can define it however you want, while the rest of us define it the way Jacobi did. It's very confusing if you write $J_Bm$ instead of $J_B^Tm$. The results are quite different.
– Federico
Dec 12 '18 at 16:18
|
show 2 more comments
No,
$$operatorname{grad}(vec{m}cdotvec{B}) neq m cdotoperatorname{grad}(vec{B})$$
But rather
$$begin{align}
operatorname{grad}(vec{m}cdotvec{B})_i&=partial_i (m_kB_k)\
&=(partial_im_k)B_k+(partial_iB_k)m_k\
&=J(vec{m})_{ik}B_k+J(vec{B})_{ik}m_k\
&=(J(vec{m})cdotvec{B})_i+(J(vec{B})cdotvec{m})_i
end{align}$$
Where $J(vec{m})$ is the Jacobian of $vec{m}$ and $J(vec{B})$ is the jacobian of $vec{B}$. And if $vec{m}$ is a constant vector, then you have that
$$operatorname{grad}(vec{m}cdotvec{B})=J(vec{B})cdotvec{m}$$
Oh, ok. That's great, good to know. Thank you. But still I dont know how to to do that.... Any tips?
– maje90
Dec 12 '18 at 15:53
Watch out, that's the transpose of the Jacobian! $J(B)_{ij} = partial B_i/partial x_j$
– Federico
Dec 12 '18 at 16:09
@maje90 What would you like to do?
– Botond
Dec 12 '18 at 16:13
@Federico Well, It can be defined the way I did it as well.
– Botond
Dec 12 '18 at 16:16
@Botond You can define it however you want, while the rest of us define it the way Jacobi did. It's very confusing if you write $J_Bm$ instead of $J_B^Tm$. The results are quite different.
– Federico
Dec 12 '18 at 16:18
|
show 2 more comments
No,
$$operatorname{grad}(vec{m}cdotvec{B}) neq m cdotoperatorname{grad}(vec{B})$$
But rather
$$begin{align}
operatorname{grad}(vec{m}cdotvec{B})_i&=partial_i (m_kB_k)\
&=(partial_im_k)B_k+(partial_iB_k)m_k\
&=J(vec{m})_{ik}B_k+J(vec{B})_{ik}m_k\
&=(J(vec{m})cdotvec{B})_i+(J(vec{B})cdotvec{m})_i
end{align}$$
Where $J(vec{m})$ is the Jacobian of $vec{m}$ and $J(vec{B})$ is the jacobian of $vec{B}$. And if $vec{m}$ is a constant vector, then you have that
$$operatorname{grad}(vec{m}cdotvec{B})=J(vec{B})cdotvec{m}$$
No,
$$operatorname{grad}(vec{m}cdotvec{B}) neq m cdotoperatorname{grad}(vec{B})$$
But rather
$$begin{align}
operatorname{grad}(vec{m}cdotvec{B})_i&=partial_i (m_kB_k)\
&=(partial_im_k)B_k+(partial_iB_k)m_k\
&=J(vec{m})_{ik}B_k+J(vec{B})_{ik}m_k\
&=(J(vec{m})cdotvec{B})_i+(J(vec{B})cdotvec{m})_i
end{align}$$
Where $J(vec{m})$ is the Jacobian of $vec{m}$ and $J(vec{B})$ is the jacobian of $vec{B}$. And if $vec{m}$ is a constant vector, then you have that
$$operatorname{grad}(vec{m}cdotvec{B})=J(vec{B})cdotvec{m}$$
answered Dec 12 '18 at 15:17
BotondBotond
5,5882732
5,5882732
Oh, ok. That's great, good to know. Thank you. But still I dont know how to to do that.... Any tips?
– maje90
Dec 12 '18 at 15:53
Watch out, that's the transpose of the Jacobian! $J(B)_{ij} = partial B_i/partial x_j$
– Federico
Dec 12 '18 at 16:09
@maje90 What would you like to do?
– Botond
Dec 12 '18 at 16:13
@Federico Well, It can be defined the way I did it as well.
– Botond
Dec 12 '18 at 16:16
@Botond You can define it however you want, while the rest of us define it the way Jacobi did. It's very confusing if you write $J_Bm$ instead of $J_B^Tm$. The results are quite different.
– Federico
Dec 12 '18 at 16:18
|
show 2 more comments
Oh, ok. That's great, good to know. Thank you. But still I dont know how to to do that.... Any tips?
– maje90
Dec 12 '18 at 15:53
Watch out, that's the transpose of the Jacobian! $J(B)_{ij} = partial B_i/partial x_j$
– Federico
Dec 12 '18 at 16:09
@maje90 What would you like to do?
– Botond
Dec 12 '18 at 16:13
@Federico Well, It can be defined the way I did it as well.
– Botond
Dec 12 '18 at 16:16
@Botond You can define it however you want, while the rest of us define it the way Jacobi did. It's very confusing if you write $J_Bm$ instead of $J_B^Tm$. The results are quite different.
– Federico
Dec 12 '18 at 16:18
Oh, ok. That's great, good to know. Thank you. But still I dont know how to to do that.... Any tips?
– maje90
Dec 12 '18 at 15:53
Oh, ok. That's great, good to know. Thank you. But still I dont know how to to do that.... Any tips?
– maje90
Dec 12 '18 at 15:53
Watch out, that's the transpose of the Jacobian! $J(B)_{ij} = partial B_i/partial x_j$
– Federico
Dec 12 '18 at 16:09
Watch out, that's the transpose of the Jacobian! $J(B)_{ij} = partial B_i/partial x_j$
– Federico
Dec 12 '18 at 16:09
@maje90 What would you like to do?
– Botond
Dec 12 '18 at 16:13
@maje90 What would you like to do?
– Botond
Dec 12 '18 at 16:13
@Federico Well, It can be defined the way I did it as well.
– Botond
Dec 12 '18 at 16:16
@Federico Well, It can be defined the way I did it as well.
– Botond
Dec 12 '18 at 16:16
@Botond You can define it however you want, while the rest of us define it the way Jacobi did. It's very confusing if you write $J_Bm$ instead of $J_B^Tm$. The results are quite different.
– Federico
Dec 12 '18 at 16:18
@Botond You can define it however you want, while the rest of us define it the way Jacobi did. It's very confusing if you write $J_Bm$ instead of $J_B^Tm$. The results are quite different.
– Federico
Dec 12 '18 at 16:18
|
show 2 more comments
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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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.
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%2f3036780%2fhow-to-calculate-the-gradient-vector-of-a-vector-field%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