#582: Semi-automatically split McLachlan's calculations -----------------------------------+---------------------------------------- Reporter: eschnett | Owner: Type: enhancement | Status: new Priority: major | Milestone: Component: EinsteinToolkit thorn | Version: Keywords: | -----------------------------------+---------------------------------------- Split McLachlan's calculations semi-automatically in two ways: (a) by variable, so that e.g. dot[g] and dot[K] are calculated separately, and (b) by pattern, so that advection terms, dissipation, and "everything else" are calculated separately. Also introduce parameters to choose which routines are called at run time.
This is somewhat a work in progress, in that the patch is good, but the API defined to split kernels is more complex and less failsafe than it should be.
#582: Semi-automatically split McLachlan's calculations ------------------------------------+--------------------------------------- Reporter: eschnett | Owner: Type: enhancement | Status: review Priority: major | Milestone: Component: EinsteinToolkit thorn | Version: Resolution: | Keywords: ------------------------------------+--------------------------------------- Changes (by eschnett):
* status: new => review
#582: Semi-automatically split McLachlan's calculations ------------------------------------+--------------------------------------- Reporter: eschnett | Owner: Type: enhancement | Status: review Priority: major | Milestone: Component: EinsteinToolkit thorn | Version: Resolution: | Keywords: ------------------------------------+---------------------------------------
Comment (by hinder):
(Erik and I already discussed this out of TRAC - I put the following here for the benefit of others)
This makes for a much more complicated !McLachlan_BSSN.m. I would rather that the splitting itself was done within Kranc. You could give Kranc the original unsplit calculations, and give it patterns to match against the terms which are candidates for splitting. Kranc would then process the calculations and generate the different variants. This way, the splitting, which is an implementation/optimisation detail, is hidden from the end- user, who only has to worry about the equations. It's good to have this patch here in TRAC so that we can use it as a reference, now that I see the idea of what you are trying to do. We just need to move the logic from this patch into Kranc.
#582: Semi-automatically split McLachlan's calculations ------------------------------------+--------------------------------------- Reporter: eschnett | Owner: Type: enhancement | Status: reopened Priority: major | Milestone: Component: EinsteinToolkit thorn | Version: Resolution: | Keywords: ------------------------------------+--------------------------------------- Changes (by knarf):
* status: review => reopened
#582: Semi-automatically split McLachlan's calculations ------------------------------------+--------------------------------------- Reporter: eschnett | Owner: eschnett Type: enhancement | Status: assigned Priority: major | Milestone: Component: EinsteinToolkit thorn | Version: Resolution: | Keywords: ------------------------------------+--------------------------------------- Changes (by knarf):
* owner: => eschnett * status: reopened => assigned
#582: Semi-automatically split McLachlan's calculations ------------------------------------+--------------------------------------- Reporter: eschnett | Owner: hinder Type: enhancement | Status: assigned Priority: major | Milestone: Component: EinsteinToolkit thorn | Version: Resolution: | Keywords: ------------------------------------+--------------------------------------- Changes (by eschnett):
* owner: eschnett => hinder
#582: Semi-automatically split McLachlan's calculations ------------------------------------+--------------------------------------- Reporter: eschnett | Owner: hinder Type: enhancement | Status: assigned Priority: major | Milestone: Component: EinsteinToolkit thorn | Version: Resolution: | Keywords: ------------------------------------+---------------------------------------
Comment (by eschnett):
I don't know where these factors arise, but I dimly recall a discussion about CFL conditions -- these factors are supposed to ensure that eps=O(1) (such as e.g. eps=0.1) is a good choice for all orders.
It seems that a factor of 1/4 is missing for the order=1 case.
#582: Semi-automatically split McLachlan's calculations ------------------------------------+--------------------------------------- Reporter: eschnett | Owner: hinder Type: enhancement | Status: closed Priority: major | Milestone: Component: EinsteinToolkit thorn | Version: Resolution: fixed | Keywords: ------------------------------------+--------------------------------------- Changes (by eschnett):
* status: assigned => closed * resolution: => fixed
Comment:
Committed.
#582: Semi-automatically split McLachlan's calculations ------------------------------------+--------------------------------------- Reporter: eschnett | Owner: hinder Type: enhancement | Status: reopened Priority: major | Milestone: Component: EinsteinToolkit thorn | Version: Resolution: | Keywords: ------------------------------------+--------------------------------------- Changes (by eschnett):
* status: closed => reopened * resolution: fixed =>
Comment:
Not committed.
#582: Semi-automatically split McLachlan's calculations ------------------------------------+--------------------------------------- Reporter: eschnett | Owner: hinder Type: enhancement | Status: reopened Priority: major | Milestone: Component: EinsteinToolkit thorn | Version: Resolution: | Keywords: ------------------------------------+---------------------------------------
Comment (by hinder):
The corresponding feature in Kranc is discussed in https://github.com/ianhinder/Kranc/issues/45. Development will occur there. I will leave this ticket open, so that when the features are fully implemented in Kranc, they can be incorporated into McLachlan.
#582: Semi-automatically split McLachlan's calculations ------------------------------------+--------------------------------------- Reporter: eschnett | Owner: Type: enhancement | Status: assigned Priority: major | Milestone: Component: EinsteinToolkit thorn | Version: Resolution: | Keywords: ------------------------------------+--------------------------------------- Changes (by hinder):
* owner: hinder => * status: reopened => assigned
Comment:
McLachlan has been rewritten (rewrite branch) since this patch, so it is no longer applicable.
trac@lists.einsteintoolkit.org