SFEMaNS  version 4.1 (work in progress)
Reference documentation for SFEMaNS
 All Classes Files Functions Variables Groups Pages
gen_gauss.f90
Go to the documentation of this file.
2  IMPLICIT NONE
3 PUBLIC:: gen_gauss
4 PRIVATE
5 CONTAINS
6  SUBROUTINE gen_gauss(mesh,edge_stab)
7  USE def_type_mesh
10  IMPLICIT NONE
11  TYPE(mesh_type) :: mesh
12  LOGICAL, OPTIONAL, INTENT(IN) :: edge_stab
13  INTEGER :: nw, nws
14  IF (present(edge_stab)) THEN
15  mesh%edge_stab=edge_stab
16  ELSE
17  mesh%edge_stab=.false.
18  END IF
19  nw = SIZE(mesh%jj,1)
20  nws = SIZE(mesh%jjs,1)
21  IF (nw==3 .AND. nws==2) THEN ! Decide about space dimension
22  CALL gauss_points_2d_p1(mesh)
23  ELSE IF (nw==6 .AND. nws==3) THEN
24  !CALL Gauss_gen(mesh%np, mesh%me, mesh%nps, mesh%mes, &
25  ! mesh%jj, mesh%jjs, mesh%rr)
26  CALL gauss_points_2d_p2(mesh)
27  ELSE IF (nw==0 .AND. nws==0) THEN
28  mesh%gauss%n_w = 1 ! dummy value
29  mesh%gauss%l_G = 1 ! dummy value
30  mesh%gauss%n_ws = 1 ! dummy value
31  mesh%gauss%l_Gs = 1 ! dummy value
32  mesh%gauss%k_d = 1 ! dummy value
33  ELSE IF (nw==4 .AND. nws==3) THEN
34  WRITE(*,*) ' Finite element not yet programmed '
35  WRITE(*,*) nw, nws
36  stop
37  ELSE IF (nw==10 .AND. nws==6) THEN
38  WRITE(*,*) ' Finite element not yet programmed '
39  WRITE(*,*) nw, nws
40  stop
41  ELSE
42  WRITE(*,*) ' Finite element not yet programmed '
43  WRITE(*,*) nw, nws
44  stop
45  END IF
46  END SUBROUTINE gen_gauss
47 
48 END MODULE generation_gauss
subroutine, public gauss_points_2d_p2(mesh)
subroutine, public gauss_points_2d_p1(mesh)
Prepares gauss points for P1 approximation in 2D.
subroutine, public gen_gauss(mesh, edge_stab)
Definition: gen_gauss.f90:6