Hi everyone,
We had a long discussion about this in Munich yesterday. I will try to explain it with words now, the mathematical proofs I will put in my Thesis.
First of all, to avoid further confusion, what Rubén means with:
In the old mapper the POINT_WISE flag
is called "distributed"
Now, regarding the conservation property of mappers:
Besides, AFAIK the conservative property is intrinsic of the mapper methodology. Thus how can we perfectly enforce it? (the technique that we used to use has some simplifications that drive to a mesh dependent error in the final equilibrium)...
By derivation, every mapper is CONSISTENT and not conservative. (Basis: Weak form on the interface)
A conservative mapper can be derived from the consistent one. The goal of a conservative mapper is to preserve the energy of the interface (aka interface equilibrium)
Here basically two different definitions exist:
- A simple redistribution of nodal values
- Based on the balance of virtual work (more sophisticated)
(The math will follow in the thesis)
Important here is that consistent mapping is independent of the physics, but conservative mapping is NOT! Therefore it only makes sense for some field quantities to be mapped conservative, such as the reaction forces in FSI.
Also it has to be said that for consistent mapping, we need distributed fields as input, for conservative mapping we need consistent nodal values.
Now what is happening in the existing mapper?
After a short discussion with Philipp, I cannot figure out at all which is the aim of having both CONSERVATIVE and POINT_WISE flags... In the old mapper the POINT_WISE flag launch an operation to preserve the interface equilibrium in case of mapping punctual loads (this is done computing the nodal Cauchy traction vector values and mapping them to the destination domain). So it comes to my mind that the flag CONSERVATIVE might be misunderstood...
Explanation:
This mapper does NOT have an implementation for conservative mapping! => only for consistent mapping
To map consistent nodal forces (consistent nodal values), we need to first convert them to tractions (distributed field), map them, and then convert them back.
This is exactly what happens if the "distributed" flag is set.
Now how to use the new mapper and what about the "POINT_WISE_VALUES" flag?
The new mapper has methods for conservative mapping (the "CONSERVATIVE" flag), so there is no need to first convert consistent nodal values to distributed fields for mapping, e.g. reaction can be directly mapped if the "CONSERVATIVE" flag is set. I.e. there is no need for the "POINT_WISE_VALUES" flag, I will remove it.
One last remark about the comparison of the old and the new mapper: While in the new mapper the conservative method is implemented explicitly, I am not sure if what was done in the old mapper is also conservative in the same sense. AFAIK it's somehow the same, but not sure if it is exactly the same. I will make another post if I know more about that.
Additional Remark:
Conversion from consistent nodal values to distributed fields might be implemented in some sort of utility, if one ever wants to do more fancy things (I think this is also what Riccardo suggested)
I hope I made myself clear.
Best regards,
Philipp