- Thank you received: 0
Tensor Product Space and HCurl/HDiv
6 years 1 month ago #1213
by gerhard
Replied by gerhard on topic Tensor Product Space and HCurl/HDiv
Hi again, sorry for the delay, the changes were merged some minutes ago.
The two lines in tpintrule haven't change at all, but the function "CalcShape" isn't called anymore.
The changes are in tpfes.cpp in the functions TransferToTPMesh and TransferToStdMesh.
Should run now.
The two lines in tpintrule haven't change at all, but the function "CalcShape" isn't called anymore.
The changes are in tpfes.cpp in the functions TransferToTPMesh and TransferToStdMesh.
Should run now.
6 years 1 month ago #1214
by joachim
Replied by joachim on topic Tensor Product Space and HCurl/HDiv
I just merged Gerhard's fixes, it will be in the nightly release tonight
The following user(s) said Thank You: jhauser
5 years 8 months ago #1495
by jhauser
Replied by jhauser on topic Tensor Product Space and HCurl/HDiv
First: Thank you for the fixes!
After some trial and error work the assembling for special differential equations, seems to be working as well.
Now I am am trying to understand the behavior of the interpolation error a bit better. I compare CoefficientFunctions projected on the L2 space (3D) and ProlongateCoefficientFunctions(1D+2D) first projected into the tensor product space and then into the L2. For that I have two questions for understanding the evaluation of coefficient functions in the tp space:
1. Does the line
especially
give me the evaluation of the CoefficientFunction in the mapped interpolation points? Or rather some coefficients for the basis functions corresponding to the integration rule (and therefore some interpolation)?
2. I am a bit confused about what's going on in TransferToTPMesh. I interpret the lines 678 to 687 as something like
elmatout = A^{-1} A_2^{-T}A^T resultasmat B B^{-1} B_2^{-T}
which means
elmatout = A^{-1} A_2^{-T}A^T resultasmat B_2^{-T}
for
A = shapesx, A_2 = shapesx2,
B = shapesy, B_2 = spapesy2.
Was there transposing intentionally left out or did I misinterpret the CalcInverse?
After some trial and error work the assembling for special differential equations, seems to be working as well.
Now I am am trying to understand the behavior of the interpolation error a bit better. I compare CoefficientFunctions projected on the L2 space (3D) and ProlongateCoefficientFunctions(1D+2D) first projected into the tensor product space and then into the L2. For that I have two questions for understanding the evaluation of coefficient functions in the tp space:
1. Does the line
Code:
CoefficientFunction->Evaluate(MapedIntegrationRule,Matrix);
Code:
cfstd->Evaluate(tpmir,result);
2. I am a bit confused about what's going on in TransferToTPMesh. I interpret the lines 678 to 687 as something like
elmatout = A^{-1} A_2^{-T}A^T resultasmat B B^{-1} B_2^{-T}
which means
elmatout = A^{-1} A_2^{-T}A^T resultasmat B_2^{-T}
for
A = shapesx, A_2 = shapesx2,
B = shapesy, B_2 = spapesy2.
Was there transposing intentionally left out or did I misinterpret the CalcInverse?
5 years 6 months ago #1625
by gerhard
Replied by gerhard on topic Tensor Product Space and HCurl/HDiv
Hi there,
Concerning your questions:
1.) cfstd->Evaluate(tpmir,result);
Probably you refer to line 662 in tpfes.cpp.
Yes, the function evaluates cfstd at the integration points in tpmir.
2.) The lines you mentioned in your post are correct. Your manipulations will only work when the shape matrices quadratic, otherwise they're not invertible. On the other hand, if they were, use that the mass matrix is symmetric, i.e. you could exchange line 687 also by
Then your calculations end up in A_2^{-T} resultasmat B_2^{-T}.
Concerning your questions:
1.) cfstd->Evaluate(tpmir,result);
Probably you refer to line 662 in tpfes.cpp.
Yes, the function evaluates cfstd at the integration points in tpmir.
2.) The lines you mentioned in your post are correct. Your manipulations will only work when the shape matrices quadratic, otherwise they're not invertible. On the other hand, if they were, use that the mass matrix is symmetric, i.e. you could exchange line 687 also by
Code:
elmatout = Trans(elmatx)*elmatrhs*elmaty;
Time to create page: 0.107 seconds