From ed36bbee0d24725d20e20a5415f3a8005594f2da Mon Sep 17 00:00:00 2001 From: shion Date: Sat, 8 Nov 2025 13:28:21 +0900 Subject: [PATCH] Updates in FEVariable - adding a few methods --- .../src/FEVariable_NodalVariableMethod.F90 | 22 ++++++++++++++++++ .../FEVariable_QuadratureVariableMethod.F90 | 23 ++++++++++++++++++- ...FEVariable_NodalVariableMethod@Methods.F90 | 18 +++++++++++++++ ...iable_QuadratureVariableMethod@Methods.F90 | 18 +++++++++++++++ 4 files changed, 80 insertions(+), 1 deletion(-) diff --git a/src/modules/FEVariable/src/FEVariable_NodalVariableMethod.F90 b/src/modules/FEVariable/src/FEVariable_NodalVariableMethod.F90 index 4c7f51bf..163b5e66 100644 --- a/src/modules/FEVariable/src/FEVariable_NodalVariableMethod.F90 +++ b/src/modules/FEVariable/src/FEVariable_NodalVariableMethod.F90 @@ -242,6 +242,28 @@ END FUNCTION Nodal_Vector_Space2 ! NodalVariable@ConstructorMethods !---------------------------------------------------------------------------- +!> author: Shion Shimizu +! date: 2025-11-05 +! summary: Create nodal variable, which is vector, Space + +INTERFACE + MODULE PURE FUNCTION Nodal_Vector_Space3(nrow, ncol, rank, vartype) & + RESULT(obj) + TYPE(FEVariable_) :: obj + INTEGER(I4B), INTENT(IN) :: nrow, ncol + TYPE(FEVariableVector_), INTENT(IN) :: rank + TYPE(FEVariableSpace_), INTENT(IN) :: vartype + END FUNCTION Nodal_Vector_Space3 +END INTERFACE + +INTERFACE NodalVariable + MODULE PROCEDURE Nodal_Vector_Space3 +END INTERFACE NodalVariable + +!---------------------------------------------------------------------------- +! NodalVariable@ConstructorMethods +!---------------------------------------------------------------------------- + !> author: Vikas Sharma, Ph. D. ! date: 2021-12-10 ! update: 2021-12-10 diff --git a/src/modules/FEVariable/src/FEVariable_QuadratureVariableMethod.F90 b/src/modules/FEVariable/src/FEVariable_QuadratureVariableMethod.F90 index 125d677d..a387b170 100644 --- a/src/modules/FEVariable/src/FEVariable_QuadratureVariableMethod.F90 +++ b/src/modules/FEVariable/src/FEVariable_QuadratureVariableMethod.F90 @@ -226,7 +226,6 @@ END FUNCTION Quadrature_Vector_Space ! summary: Create quadrature variable, which is Vector, Space INTERFACE - MODULE PURE FUNCTION Quadrature_Vector_Space2(val, rank, vartype, s) & RESULT(obj) TYPE(FEVariable_) :: obj @@ -245,6 +244,28 @@ END FUNCTION Quadrature_Vector_Space2 ! QuadratureVariable@ConstructorMethods !---------------------------------------------------------------------------- +!> author: Shion Shimizu +! date: 2025-11-05 +! summary: Create quadrature variable, which is Vector, Space + +INTERFACE + MODULE PURE FUNCTION Quadrature_Vector_Space3(nrow, ncol, rank, vartype) & + RESULT(obj) + TYPE(FEVariable_) :: obj + INTEGER(I4B), INTENT(IN) :: nrow, ncol + TYPE(FEVariableVector_), INTENT(IN) :: rank + TYPE(FEVariableSpace_), INTENT(IN) :: vartype + END FUNCTION Quadrature_Vector_Space3 +END INTERFACE + +INTERFACE QuadratureVariable + MODULE PROCEDURE Quadrature_Vector_Space3 +END INTERFACE QuadratureVariable + +!---------------------------------------------------------------------------- +! QuadratureVariable@ConstructorMethods +!---------------------------------------------------------------------------- + !> author: Vikas Sharma, Ph. D. ! date: 2021-12-10 ! update: 2021-12-10 diff --git a/src/submodules/FEVariable/src/FEVariable_NodalVariableMethod@Methods.F90 b/src/submodules/FEVariable/src/FEVariable_NodalVariableMethod@Methods.F90 index fe5d9652..698217e4 100644 --- a/src/submodules/FEVariable/src/FEVariable_NodalVariableMethod@Methods.F90 +++ b/src/submodules/FEVariable/src/FEVariable_NodalVariableMethod@Methods.F90 @@ -171,6 +171,24 @@ END PROCEDURE Nodal_Vector_Space2 +!---------------------------------------------------------------------------- +! NodalVariable +!---------------------------------------------------------------------------- + +MODULE PROCEDURE Nodal_Vector_Space3 +INTEGER(I4B) :: s(2), tsize + +s(1) = nrow +s(2) = ncol +tsize = s(1) * s(2) + +CALL FEVariableInitiate(obj=obj, s=s, defineon=TypeFEVariableOpt%nodal, & + vartype=TypeFEVariableOpt%space, & + rank=TypeFEVariableOpt%vector, len=tsize) + +obj%val(1:obj%len) = 0.0_DFP +END PROCEDURE Nodal_Vector_Space3 + !---------------------------------------------------------------------------- ! NodalVariable !---------------------------------------------------------------------------- diff --git a/src/submodules/FEVariable/src/FEVariable_QuadratureVariableMethod@Methods.F90 b/src/submodules/FEVariable/src/FEVariable_QuadratureVariableMethod@Methods.F90 index 0930edd8..195faf2d 100644 --- a/src/submodules/FEVariable/src/FEVariable_QuadratureVariableMethod@Methods.F90 +++ b/src/submodules/FEVariable/src/FEVariable_QuadratureVariableMethod@Methods.F90 @@ -170,6 +170,24 @@ END PROCEDURE Quadrature_Vector_Space2 +!---------------------------------------------------------------------------- +! QuadratureVariable +!---------------------------------------------------------------------------- + +MODULE PROCEDURE Quadrature_Vector_Space3 +INTEGER(I4B) :: s(2), tsize + +s(1) = nrow +s(2) = ncol +tsize = s(1) * s(2) + +CALL FEVariableInitiate(obj=obj, s=s, defineon=TypeFEVariableOpt%Quadrature, & + vartype=TypeFEVariableOpt%space, & + rank=TypeFEVariableOpt%vector, len=tsize) + +obj%val(1:obj%len) = 0.0_DFP +END PROCEDURE Quadrature_Vector_Space3 + !---------------------------------------------------------------------------- ! QuadratureVariable !----------------------------------------------------------------------------