You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Issue: Full Tensor Implementation as a Pre-requisite to #6 and #12
Description:
As a pre-requisite to issues #6 and #12, it would be beneficial to implement a full tensor framework. The current challenge lies in the incompatibility between 3D implementations and symmetric tensors.
tensornew_symmetric_tensor (constchar*name)
{
struct { char*x, *y, *z; } ext= {".x.x", ".y.y", ".z.z"};
tensort;
foreach_dimension()
t.x.x=alloc_block_scalar (name, ext.x, 1);
#ifdimension>1t.x.y=alloc_block_scalar (name, ".x.y", 1);
t.y.x=t.x.y;
#endif#ifdimension>2t.x.z=alloc_block_scalar (name, ".x.z", 1);
t.z.x=t.x.z;
t.y.z=alloc_block_scalar (name, ".y.z", 1);
t.z.y=t.y.z;
#endif/* fixme: boundary conditions don't work! This is because boundary attributes depend on the index and should (but cannot) be different for t.x.y and t.y.x */init_tensor (t, NULL);
returnt;
}
TODO:
Ideally, we would like to consistently use tensor formulation to leverage ease of readability and maintainability.
However, this is currently blocked by a limitation in Basilisk's core implementation (see basilisk/src/grid/cartesian-common.h line ~246: "fixme: boundary conditions don't work!").
Once this limitation is resolved in Basilisk's core, we can:
Convert scalar implementation to use tensors
Make the code generally compatible using foreach_dimensions
Improve code maintainability and readability
Potentially merge with the 2D tensor-based implementation
Issue: Full Tensor Implementation as a Pre-requisite to #6 and #12
Description:
As a pre-requisite to issues #6 and #12, it would be beneficial to implement a full tensor framework. The current challenge lies in the incompatibility between 3D implementations and symmetric tensors.
Reference Code:
Link to source code
TODO:
foreach_dimensions
Related Issues:
The text was updated successfully, but these errors were encountered: