152 integer,
dimension(:),
allocatable :: quadtype
156 integer,
dimension(0:QUAD_TOT_NB) :: quad_count = 0
221 type(
mesh) ,
target :: m
224 &
'quadMesh_mod : create' 226 if(.NOT.
valid(m))
call quit(
"quadMesh_mod:& 227 & quadMesh_create: mesh 'm' not valid" )
234 &
' Number of cells =', qdm%mesh%nbCl
266 integer ,
intent(in) :: quadType
267 procedure(r3tor) ,
optional :: f
269 logical,
dimension(:),
allocatable :: flag
272 if (
choral_verb>0)
write(*,*)
'quadMesh_mod : quadMesh_set' 274 if ( (quadtype<0) .OR. ( quadtype >
quad_tot_nb) ) &
275 &
call quit(
'quadMesh_mod: quadMesh_set:& 276 & wrong quadrature type')
299 integer ,
intent(out) :: cpt
300 integer ,
intent(in) :: quadType
301 logical,
dimension(:),
intent(in) :: flag
303 integer :: ii, jj, geo, cl_geo
305 if(
size(flag,1)/=qdm%mesh%nbCl)
call quit(
"quadMesh_mod:& 306 & set_flagged cells: argument 'flag' incorrect" )
311 do ii=1, qdm%mesh%nbCl
313 if (.NOT.flag(ii)) cycle
315 jj = qdm%mesh%clType(ii)
318 if (geo==cl_geo)
then 321 qdm%quadType(ii) = quadtype
338 &
"quadMesh_mod : assemble" 344 do cl=1, qdm%mesh%nbCl
346 qt = qdm%quadType(cl)
347 qdm%quad_count(qt) = qdm%quad_count(qt) + 1
352 &
'quadMesh_mod: mesh_ass_boundaryemble: assembling not valid')
365 write(*,*)
"quadMesh_mod : print" 366 write(*,*)
' Number of cells per quad method' 368 if ( qdm%quad_count(ii)>0)
then 372 &//
" =", qdm%quad_count(ii)
386 if (.NOT. (
associated(qdm%mesh) ))
return 387 if (.NOT.
valid(qdm%mesh))
return 388 if (.NOT. (
allocated(qdm%quadType) ))
return 390 b = (
size(qdm%quadType,1) == qdm%mesh%nbCl )
391 b = b .AND. (
size(qdm%quadType,1) == sum(qdm%quad_count) )
DEFINITION OF ABSTRACT_INTERFACES FOR THE LIBRARY CHORAL
deallocate memory for real(RP) arrays
logical function quadmesh_valid(qdm)
Check if assembling is correct.
QUADRATURE RULES ON REFERENCE CELLS
subroutine set_flagged_cells(qdm, cpt, quadType, flag)
Set the integration method 'qdm' to 'quadType' on all cells 'cl' of compatible geometry that moreover...
integer, dimension(cell_tot_nb), public cell_geo
Associated reference cell for each cell type.
subroutine, public flag_mesh_cells(flag, m, dim, f)
OUTPUT: flag(:) array of logical with size mnbCl.
integer, parameter quad_none
integer, dimension(quad_tot_nb), public quad_dim
Reference cell dimension for each quad method.
DERIVED TYPE quadMesh: integration methods on meshes
integer, parameter quad_tot_nb
Total number of quadrature rules.
subroutine quadmesh_clear(qdm)
Destructor for quadMesh type.
type(quadmesh) function quadmesh_create(m)
Constructor for the type quadMesh
allocate memory for real(RP) arrays
integer choral_verb
Verbosity level.
Sets an integration method quadMesh.
DEFINITION OF GLOBAL VARIABLES FOR THE LIBRARY CHORAL
subroutine quadmesh_assemble(qdm)
Sets mdim, qdmquad_count.
The type quadMesh defines integration methods on meshes.
character(len=13), dimension(0:quad_tot_nb), public quad_name
QUAD_ARRAY.
subroutine quadmesh_print(qdm)
number of cells per fe type
DEFINITION OF GEOMETRICAL CELLS (for meshes)
integer, dimension(quad_tot_nb), public quad_geo
Reference cell geometry for each quad method.
subroutine quadmesh_set(qdm, quadType, f)
Sets an integration method quadMesh