|
| 1 | +PROGRAM main |
| 2 | +USE easifemBase |
| 3 | +USE easifemClasses |
| 4 | + |
| 5 | +IMPLICIT NONE |
| 6 | + |
| 7 | +CHARACTER(*), PARAMETER :: filename = "./meshdata/small_mesh.h5" |
| 8 | +INTEGER(I4B), ALLOCATABLE :: elem2elem(:, :) |
| 9 | +INTEGER(I4B) :: globalElement, ii |
| 10 | +TYPE(ElemData_) :: elemdata1, elemdata2 |
| 11 | +TYPE(FEMesh_) :: obj |
| 12 | +TYPE(HDF5File_) :: meshfile |
| 13 | +LOGICAL(LGT) :: isok |
| 14 | + |
| 15 | +CALL e%setQuietMode(EXCEPTION_INFORMATION, .TRUE.) |
| 16 | +CALL meshfile%Initiate(filename, "READ") |
| 17 | +CALL meshfile%OPEN() |
| 18 | +CALL obj%Initiate(hdf5=meshfile, group="/surfaceEntities_1") |
| 19 | + |
| 20 | +globalElement = 23 |
| 21 | +elem2elem = obj%GetElementToElements(globalElement=globalElement, & |
| 22 | + onlyElements=.FALSE.) |
| 23 | +CALL Display(elem2elem, "Element connected to iel="//tostring(globalElement)) |
| 24 | +CALL obj%GetElemData(globalElement=globalElement, elemdata=elemdata1, & |
| 25 | + islocal=.FALSE.) |
| 26 | +CALL Blanklines(nol=2) |
| 27 | + |
| 28 | +CALL ElemData_Display(elemdata1, "elemdata: ") |
| 29 | + |
| 30 | +DO ii = 1, SIZE(elem2elem, 1) |
| 31 | + |
| 32 | + globalElement = elem2elem(ii, 1) |
| 33 | + CALL obj%GetElemData(globalElement=globalElement, elemdata=elemdata2, & |
| 34 | + islocal=.FALSE.) |
| 35 | + |
| 36 | + isok = elemdata1%globalFaces(elem2elem(ii, 2)) & |
| 37 | + .EQ. elemdata2%globalFaces(elem2elem(ii, 3)) |
| 38 | + CALL OK(isok, "GetElementToElements test-a : ") |
| 39 | + |
| 40 | + isok = (elemdata1%faceOrient(1, elem2elem(ii, 2)) & |
| 41 | + + elemdata2%faceOrient(1, elem2elem(ii, 3))) .EQ. 0 |
| 42 | + CALL OK(isok, "GetElementToElements test-b : ") |
| 43 | + |
| 44 | +END DO |
| 45 | + |
| 46 | +CALL obj%DEALLOCATE() |
| 47 | +CALL meshfile%CLOSE() |
| 48 | +CALL meshfile%DEALLOCATE() |
| 49 | +END PROGRAM main |
0 commit comments