Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/elmerice/Tests/FrictionHeat/DummySolver.f90
3206 views
1
2
RECURSIVE SUBROUTINE DummySolver( Model,Solver,Timestep,TransientSimulation )
3
USE DefUtils
4
5
IMPLICIT NONE
6
7
8
!------------------------------------------------------------------------------
9
! External variables
10
!------------------------------------------------------------------------------
11
TYPE(Model_t) :: Model
12
TYPE(Solver_t), TARGET :: Solver
13
LOGICAL :: TransientSimulation
14
REAL(KIND=dp) :: Timestep
15
!------------------------------------------------------------------------------
16
! Local variables
17
!------------------------------------------------------------------------------
18
TYPE(ValueList_t), Pointer :: BC
19
TYPE(Variable_t), POINTER :: Var
20
TYPE(Element_t),POINTER :: Element
21
INTEGER, POINTER :: VarPerm(:)
22
INTEGER :: VarDOFs, i, j, k, N, t
23
REAL(KIND=dp), POINTER :: VarValues(:)
24
LOGICAL :: GotIt
25
26
PRINT *,"DummySolver"
27
PRINT *,"***********************************"
28
29
Var => Solver % Variable
30
IF (ASSOCIATED(Var)) THEN
31
VarPerm => Var % Perm
32
VarDOFs = Var % DOFs
33
VarValues => Var % Values
34
ELSE
35
CALL FATAL('DummySolver','No Variable associated')
36
END IF
37
k=0
38
! DO i = 1,Model % NumberOfNodes
39
! DO j=1,VarDOFs
40
! k = k + 1
41
! VarValues(VarDOFs*(VarPerm(i) - 1)+j) = k
42
! END DO
43
! END DO
44
! VarValues = 0.0_dp
45
DO t=1, Solver % Mesh % NumberOfBoundaryElements
46
! get element information
47
Element => GetBoundaryElement(t)
48
IF ( .NOT.ActiveBoundaryElement() ) CYCLE
49
BC => GetBC()
50
n = GetElementNOFNodes()
51
VarValues(VarPerm(Element % NodeIndexes)) = ListGetReal(BC,TRIM(Solver % Variable % Name),n,Element % NodeIndexes,GotIt)
52
END DO
53
54
END SUBROUTINE DummySolver
55
56