Hi,<br>
<br>
I have 2 questions regarding the ApplyLoads function in the implementation of itkFEMRegistrationFilter:<br>
1. in order to assign the BC to elements, there is a brute-force
iteration through the elements (for each boundary condition). Wouldn't
it make sense to use the interpolation grid in this situation? <br>
2. I am a little confused about the names of the points in the LoadLandmark class; if I get it correctly,<br>
- source = undeformed configuration<br>
- point = deformed configuration<br>
However, in the ApplyLoads function, namely in the following code snippet:<br>
<br>
-----------------<br>
pu=m_LandmarkArray[lmind]->GetSource();<br>
pd=m_LandmarkArray[lmind]->GetPoint();<br>
<br>
for (Element::ArrayType::const_iterator n = mySolver.el.begin(); <br>
n!=mySolver.el.end() && !isFound; n++) <br>
{<br>
if ( (*n)->GetLocalFromGlobalCoordinates(pu, pd ) )<br>
{ <br>
isFound=true;<br>
m_LandmarkArray[lmind]->SetPoint(pd);<br>
//
std::cout << " load local pt " <<
m_LandmarkArray[lmind]->GetPoint() << std::endl;<br>
m_LandmarkArray[lmind]->el[0]=( ( &**n ) );<br>
}<br>
}<br>
---------------<br>
<br>
pu seems to represent the position in the undeformed
configuration (global coordinates), is then converted to local
coordinates in the pd variable and then assigned as point. So I am
quite confused about this part of the code:<br>
- why is ever pd initialized?<br>
- why is pu translated into local coordinates and then overwrites pd?<br>
<br clear="all"><br>
Thanks,<br>
<br>-- <br>Gheorghe Postelnicu, PhD<br>MGH, Harvard Medical School