-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Summation of LazyArrays #610
Comments
Hi @Omega-xyZac Can you share the code that generates this? |
It should be possible to have arbitrarily complex operations at gauss point level without blowing up the complexity of the type signature of the lazy array. |
Hi @fverdugo, thank you for the fast reply. I have a very large code base so sharing isn't really an option. However, that example is generated using the below:
where data_1,data_2,... are of data type
and the @gtensor macro is the script that I've mentioned in a previous issue for doing general contractions by leveraging the TensorOperations package. Though, these particular operations could be replaced by something like .⋅² and .⋅. Hopefully that is decipherable.. |
I cannot decipher the code, but it seems that you are implementing complex operations in a not so efficient way for the gridap backend. You need to implement the complex operation in a function f that takes values at a generic integration point, and then use Operation(f)(...) or f\circ(....) just like in the linear elasticity or the hyperelasticity tutorial |
Thank you for the suggestion! I think I've found a faster way to do this by integrating the quantities A, ℬ, etc. prior to contractions. I will also try your suggestion. I'll close this issue for now :). |
Hi again @fverdugo, I tried your suggestion and implemented some functions that take values at generic integration points:
Is this along the lines of what you meant? Do you have any other ideas for how to speed this up? Appreciate any suggestions you might have. |
Suppose we are contracting, operating then integrating on tensors generated from an FE function. Then you can encounter very complex LazyArrays such as the example below. This is fine unless you want to sum up the array. Summing an array such as the one below can take almost 60 seconds - not a surprise given the typing.
Is there a faster way we could sum such an array? Maybe not given the nature of LazyArrays but I thought it worth the question.
The text was updated successfully, but these errors were encountered: