-
Notifications
You must be signed in to change notification settings - Fork 578
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
MueLu: How to pass primal/dual mapping to InterfaceMappingTransferFactory? #7164
Comments
Basically, what we need is the factory In the example, as you said, I hard coded the I see two approaches not to hard code the name:
I think that the last approach would be better as it does not rely on the user to add other information (the name of the factory). |
@kliegeois I like the second option better as well. There might be another: maybe this data also can be passed in via the @lucbv What do you think? Is this the intended use case of the |
@mayrmt |
@lucbv thanks for your input. That's definitely better. |
@lucbv Thanks! I'll look into that. Maybe we can briefly talk about it later, so that you can point me to an example. |
@mayrmt @kliegeois I like the idea with the "user data". This has been introduced for such things at some point, but i forgot about it. |
Well, then I’ll give the @tawiesn For my application, one @kliegeois Are there any concerns or objections from your side? |
@mayrmt It is definitely possible to have only one I have no concerns at all, thanks for looking into that! |
@lucbv @tawiesn I'm putting the required data params->sublist("user data").set<RCP<std::map<LO, LO>>>("DualNodeID2PrimalNodeID", rcpFromRef(myLagr2Dof)); Now, I need to retrieve it during MueLu setup, but how? To avoid errors such as
I need to stick this data on the fine level. Is the correct approach? Are there any others? |
@mayrmt that seems reasonable to me, I am not sure that there many other options to handle that use case? |
@lucbv I'll try that and let you know of my success. Or failure. 😉 |
For InterfaceAggregationFactory, the dual-to-primal node mapping needs to be provided by the user on the "user data" sublist. Then, it is treated as non-serializable data and added to the hierarchy during CreateXpetraPreconditioner(). Adapted the test. Part of trilinos#7164.
Has been addressed in #7194. Closing. |
For InterfaceAggregationFactory, the dual-to-primal node mapping needs to be provided by the user on the "user data" sublist. Then, it is treated as non-serializable data and added to the hierarchy during CreateXpetraPreconditioner(). Adapted the test. Part of trilinos#7164.
Question
@trilinos/muelu @kliegeois
I'm trying to understand how I can pass the information on the mapping of dual nodes to primal nodes for the
InterfaceMappingTransferFactory
introduced in PR #6931 for our application. I'm looking at the example inpackages/muelu/test/meshtying/MeshTyingBlocked_SimpleSmoother.cpp
.As in the example, I want to read the preconditioner configuration from an xml-file. In contrast to the example, I want to create the preonditioner via
MueLu::CreateXpetraPreconditioner()
.The necessary information is set on the parameter list as shown here:
Trilinos/packages/muelu/test/meshtying/MeshTyingBlocked_SimpleSmoother.cpp
Lines 211 to 215 in 29bf4e7
As far as I understand, this hard-codes the requires the sublist being named
myInterfaceAggs2
. However, the name of this list is defined in the xml-file as a user-specified string, so there's no guarantee that the user uses that particular name in every xml-file.@kliegeois How can I pass the primal/dual node mapping to MueLu in a way, where I do not rely on particular sublist names in the MueLu xml-file?
The text was updated successfully, but these errors were encountered: