mdolab / idwarp

IDWarp is a mesh warping package for the MACH framework.
Other
16 stars 29 forks source link

Two dimensional deformation getElementProps.F90 #28

Open benno90 opened 4 years ago

benno90 commented 4 years ago

I was using idwarp for two dimensional cases. In order to work properly I adjusted the file getElementProps.F90. As faces are lines in two dimensions, the existing algorithm produced a division by zero. I just added an if statement that computes the areas and normals differently in case the number of points per face is only.

The main problem is now the differentiation of the file getElementProps.F90 with tapenade. The online conversion tool is based on version 3.15 wich produces files that are not compatible with version 3.10 that was used to differentiate idwarp.

Do you still have access to version 3.10 of tapenade? Or do you have any other idea as a workaround?

eirikurj commented 4 years ago

Thanks for creating an issue. Just to clarify, idwarp assumes the mesh is in 3D, i.e., has three dimension x,y,z. This also applies to pseudo 2D meshes (or meshes with x,y,z coordinates, one cell wide), which fits our CFD solver. Strictly 2D grids (x,y only) are not supported, neither here or in our CFD solver. Having said that, feel free to extend and submit PRs with new features or bug fixes. Regarding Tapenade, we currently use 3.10. There is no immediate plan or timeline to move to a newer version.

benno90 commented 4 years ago

Thanks for your quick reply. Im happy to submit my modifications as a pull request. Im currently using idwarp in a pure two dimensional setting where i just set all the z coordinates to zero. Only a minor modfication to getElementProps.F90 was necessary to get the deformation running. You can download the modified file here.

My main problem at the moment is to differentiate my modified version of getElementProps.F90 with tapenade as version 3.10 is not available anymore.

If you transform the file and send it back i can also test the adjoint operation.