Skip to content

Commit 8ca0776

Browse files
committed
simplification
1 parent 8c9abfa commit 8ca0776

File tree

1 file changed

+15
-33
lines changed

1 file changed

+15
-33
lines changed

fem/src/MortarUtils.F90

Lines changed: 15 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1179,7 +1179,7 @@ SUBROUTINE TemporalTriangleMortarAssembly(ElementT, NodesT, Element, Nodes, Elem
11791179
TYPE(Element_t), POINTER :: ElementP, ElementLin
11801180
TYPE(GaussIntegrationPoints_t) :: IPT
11811181
REAL(KIND=dp) :: area, xt, yt, zt = 0.0_dp, u, v, w, um, vm, wm, uq, vq, &
1182-
detJ, val, val_dual, weight, Lvals(20)
1182+
detJ, val, val_dual, weight, Lvals(20), LVals2(20)
11831183
REAL(KIND=dp), ALLOCATABLE :: BasisT(:),Basis(:), BasisM(:), MASS(:,:), CoeffBasis(:)
11841184
INTEGER :: i,j,k,jj,n,m,ne,nM,neM,nd,ndM,ElemCode,LinCode,ElemCodeM,LinCodeM,nip,nrow,AllocStat
11851185
INTEGER, POINTER :: Indexes(:),IndexesM(:)
@@ -1324,46 +1324,38 @@ SUBROUTINE TemporalTriangleMortarAssembly(ElementT, NodesT, Element, Nodes, Elem
13241324
k = 0
13251325
DO i=1,nd
13261326
IF( ABS( val * Basis(i) ) < 1.0d-10 ) CYCLE
1327-
1327+
!Nslave = Nslave + 1
13281328
k = k+1
13291329
Linds(k) = InvPerm(Indexes(i))
1330-
Lvals(k) = Basis(i)*val
1331-
1332-
!Nslave = Nslave + 1
1333-
!CALL List_AddToMatrixElement(Projector % ListMatrix, nrow, &
1334-
! InvPerm(Indexes(i)), Basis(i) * val )
1335-
1336-
IF(BiOrthogonal) THEN
1337-
CALL List_AddToMatrixElement(Projector % Child % ListMatrix, nrow, &
1338-
InvPerm(Indexes(i)), Basis(i) * val_dual )
1339-
END IF
1330+
Lvals(k) = Basis(i) * val
1331+
LVals2(k) = Basis(i) * val_dual
13401332
END DO
1341-
CALL List_AddMatrixRow(Projector % ListMatrix, nrow,k,Linds,Lvals)
1333+
1334+
CALL List_AddMatrixRow(Projector % ListMatrix, nrow,k,Linds,Lvals,KeepOrder=Biorthogonal)
1335+
IF(BiOrthogonal) THEN
1336+
CALL List_AddMatrixRow(Projector % Child % ListMatrix,nrow,k,Linds,Lvals2)
1337+
END IF
13421338

13431339
k = 0
13441340
DO i=1,ndM
13451341
IF( ABS( val * BasisM(i) ) < 1.0d-12 ) CYCLE
1346-
13471342
!Nmaster = Nmaster + 1
13481343
k = k+1
13491344
Linds(k) = InvPermM(IndexesM(i))
13501345
Lvals(k) = -NodeScale * BasisM(i) * val
13511346

1352-
1353-
!CALL List_AddToMatrixElement(Projector % ListMatrix, nrow, &
1354-
! InvPermM(IndexesM(i)), -NodeScale * BasisM(i) * val )
1355-
13561347
IF(BiOrthogonal) THEN
13571348
IF(DualMaster .OR. DualLCoeff) THEN
1358-
CALL List_AddToMatrixElement(Projector % Child % ListMatrix, nrow, &
1359-
InvPermM(IndexesM(i)), -NodeScale * BasisM(i) * val_dual )
1349+
Lvals2(k) = -NodeScale * BasisM(i) * val_dual
13601350
ELSE
1361-
CALL List_AddToMatrixElement(Projector % Child % ListMatrix, nrow, &
1362-
InvPermM(IndexesM(i)), -NodeScale * BasisM(i) * val )
1351+
Lvals2(k) = -NodeScale * BasisM(i) * val
13631352
END IF
13641353
END IF
13651354
END DO
1366-
CALL List_AddMatrixRow(Projector % ListMatrix, nrow,k,Linds,Lvals)
1355+
CALL List_AddMatrixRow(Projector % ListMatrix, nrow,k,Linds,Lvals,KeepOrder=Biorthogonal)
1356+
IF(BiOrthogonal) THEN
1357+
CALL List_AddMatrixRow(Projector % Child % ListMatrix,nrow,k,Linds,Lvals2)
1358+
END IF
13671359

13681360
END DO
13691361
END DO
@@ -1563,20 +1555,10 @@ SUBROUTINE TemporalSegmentMortarAssembly(ElementT, NodesT, Element, Nodes, Eleme
15631555
Linds(1:nM) = InvPermM(IndexesM(1:nM))
15641556
Lvals(1:nM) = sgn0 * BasisM(1:nM) * val
15651557
CALL List_AddMatrixRow(DualProjector % ListMatrix,nrow,nM,Linds,Lvals)
1566-
1567-
!DO i=1,nM
1568-
! CALL List_AddToMatrixElement(DualProjector % ListMatrix, nrow, &
1569-
! InvPermM(IndexesM(i)), sgn0 * BasisM(i) * val )
1570-
!END DO
15711558

15721559
Linds(1:n) = InvPerm(IndexesM(1:nM))
15731560
Lvals(1:n) = -NodeScale * Basis(1:n) * val
15741561
CALL List_AddMatrixRow(DualProjector % ListMatrix,nrow,n,Linds,Lvals)
1575-
1576-
!DO i=1,n
1577-
! CALL List_AddToMatrixElement(DualProjector % ListMatrix, nrow, &
1578-
! InvPerm(Indexes(i)), -NodeScale * Basis(i) * val )
1579-
!END DO
15801562
END DO
15811563
END IF
15821564
END DO

0 commit comments

Comments
 (0)