OpenCMISS-Examples / linear_tet_mechanics

Apache License 2.0
0 stars 4 forks source link

Visualisation issue #2

Open PrasadBabarendaGamage opened 6 years ago

PrasadBabarendaGamage commented 6 years ago

Error from cmgui:

Reading ./results/LinearTet.part0.exnode Reading ./results/LinearTet.part0.exelem ERROR: Invalid basis type ERROR: Invalid basis type ERROR: Invalid basis description ERROR: Error converting basis description to type array. ./results/LinearTet.part0.exelem line 165 ERROR: read_FE_element_field. Invalid basis from file ERROR: read_FE_element_field_info. Could not read element field ERROR: Error reading element field information. ./results/LinearTet.part0.exelem line 165 ERROR: Error reading element file: ./results/LinearTet.part0.exelem ERROR: Error in cmiss command "gfx read elem "$filename";".

rchristie commented 6 years ago

It would help if you could provide the offending file, particularly line 165 on which the error is reported. For linear simplex elements the basis is l.simplex (with l for linear, all lower case!). Quadratic simplex is q.simplex. The logic behind the case in the basis name is as follows: everything is lower case except proper names: Hermite and Lagrange, which start with a capital letter.

PrasadBabarendaGamage commented 6 years ago

Thanks Richard, The output files are in the expected output folder: https://github.com/OpenCMISS-Examples/linear_tet_mechanics/tree/develop/src/fortran/expected_results

There was also a QuadraticTet example that visualised correctly, however, the solution was distorted so I didn't add that. We will need to do some investigation in the future to see how to fix the tets (will add an issue for that). In the meantime, I've also attached the QuadraticTet example output here. I have a feeling it might be an issue with what fields are defined in the OpenCMISS script prior to export.

quadratic_tet_mechanics.zip

rchristie commented 6 years ago

The issue is with constant component 4 on line 165, also line 210: 4. constant(2;3)*constant*constant, no modify, grid based. Constant bases may not list bound dimensions i.e. (2;3). These specifiers are for simplex (and when added, serendipity) which are inherently multi-dimensional bases and need these numbers to list the other xi directions the basis applies over (consider a triangle_simplexline: you need to specify which xi directions are involved in the simplex). All the other bases are 1-D and use a simple tensor product to extend to multiple dimensions. This specification is largely redundant for up to three dimensions, but it anticipates 4-D triangletriangle shapes! If you remove the (2;3) text these bits will work.