Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions src/modules/FEVariable/src/FEVariable_QuadratureVariableMethod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,29 @@ END FUNCTION Quadrature_Vector_SpaceTime2
! QuadratureVariable@ConstructorMethods
!----------------------------------------------------------------------------

!> author: Shion Shimizu
! date: 2025-12-11
! summary: Create FEVariable which is vector and space-time

INTERFACE
MODULE PURE FUNCTION Quadrature_Vector_SpaceTime3(rank, vartype, &
dim1, dim2, dim3) &
RESULT(obj)
TYPE(FEVariable_) :: obj
TYPE(FEVariableVector_), INTENT(IN) :: rank
TYPE(FEVariableSpaceTime_), INTENT(IN) :: vartype
INTEGER(I4B), INTENT(IN) :: dim1, dim2, dim3
END FUNCTION Quadrature_Vector_SpaceTime3
END INTERFACE

INTERFACE QuadratureVariable
MODULE PROCEDURE Quadrature_Vector_SpaceTime3
END INTERFACE QuadratureVariable

!----------------------------------------------------------------------------
! QuadratureVariable@ConstructorMethods
!----------------------------------------------------------------------------

!> author: Vikas Sharma, Ph. D.
! date: 2021-12-10
! update: 2021-12-10
Expand Down
21 changes: 21 additions & 0 deletions src/modules/STForceVector/src/STForceVector_Method.F90
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,27 @@ END SUBROUTINE obj_STForceVector_3
MODULE PROCEDURE obj_STForceVector_3
END INTERFACE STForceVector_

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

INTERFACE
MODULE PURE SUBROUTINE obj_STForceVector_24( &
testSpace, testTime, c, crank, ans, &
dim1, dim2, dim3)
CLASS(ElemshapeData_), INTENT(IN) :: testSpace
CLASS(ElemshapeData_), INTENT(IN) :: testTime
TYPE(FEVariable_), INTENT(IN) :: c
TYPE(FEVariableVector_), INTENT(IN) :: crank
REAL(DFP), INTENT(INOUT) :: ans(:, :, :)
INTEGER(I4B), INTENT(OUT) :: dim1, dim2, dim3
END SUBROUTINE obj_STForceVector_24
END INTERFACE

INTERFACE STForceVector_
MODULE PROCEDURE obj_STForceVector_24
END INTERFACE STForceVector_

!----------------------------------------------------------------------------
! STForceVector
!----------------------------------------------------------------------------
Expand Down
18 changes: 18 additions & 0 deletions src/submodules/FEVariable/src/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,24 @@
val=val)
END PROCEDURE Quadrature_Vector_SpaceTime2

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

MODULE PROCEDURE Quadrature_Vector_SpaceTime3
INTEGER(I4B) :: tsize, s(3)

s(1) = dim1
s(2) = dim2
s(3) = dim3
tsize = dim1 * dim2 * dim3

CALL FEVariableInitiate(obj=obj, s=s, defineon=TypeFEVariableOpt%Quadrature, &
vartype=TypeFEVariableOpt%spacetime, &
rank=TypeFEVariableOpt%vector, len=tsize)

END PROCEDURE Quadrature_Vector_SpaceTime3

!----------------------------------------------------------------------------
! QuadratureVariable
!----------------------------------------------------------------------------
Expand Down
41 changes: 41 additions & 0 deletions src/submodules/STForceVector/src/[email protected]
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
USE BaseType, ONLY: TypeFEVariableMatrix
USE BaseType, ONLY: math => TypeMathOpt
USE ElemshapeData_Method, ONLY: GetProjectionOfdNTdXt_
USE Display_Method, ONLY: display

IMPLICIT NONE
CONTAINS
Expand Down Expand Up @@ -229,6 +230,46 @@
END DO
END PROCEDURE obj_STForceVector_3

!----------------------------------------------------------------------------
!
!----------------------------------------------------------------------------

MODULE PROCEDURE obj_STForceVector_24
INTEGER(I4B) :: ips, ipt, nipt, nips, spaceCompo, i1, i2, i3
REAL(DFP) :: cbar(3), realval

dim1 = FEVariableSize(obj=c, dim=1)

dim2 = testSpace%nns
nips = testSpace%nips

dim3 = testTime%nns
nipt = testTime%nips

ans(1:dim1, 1:dim2, 1:dim3) = math%zero

DO ipt = 1, nipt

DO ips = 1, nips

CALL FEVariableGetInterpolation_( &
obj=c, rank=crank, N=testSpace%N, nns=testSpace%nns, spaceIndx=ips, &
timeIndx=ipt, T=testTime%N(:, ipt), nnt=testTime%nns, scale=math%one, &
addContribution=math%no, ans=cbar, tsize=spaceCompo)

realval = testSpace%js(ips) * testSpace%ws(ips) * &
testSpace%thickness(ips) * testTime%js(ipt) * testTime%ws(ipt)

CALL OuterProd_(a=cbar(1:dim1), b=testSpace%N(1:dim2, ips), &
c=testtime%N(1:dim3, ipt), &
anscoeff=math%one, scale=realval, &
ans=ans, dim1=i1, dim2=i2, dim3=i3)

END DO
END DO

END PROCEDURE obj_STForceVector_24

!----------------------------------------------------------------------------
! STForceVector
!----------------------------------------------------------------------------
Expand Down
Loading