Choral
Data Types | Functions/Subroutines
quadmesh_mod Module Reference

DERIVED TYPE quadMesh: integration methods on meshes More...

Data Types

interface  assemble
 
interface  clear
 
interface  print
 
interface  quadmesh
 The type quadMesh defines integration methods on meshes. More...
 
interface  set
 Sets an integration method quadMesh. More...
 
interface  valid
 

Functions/Subroutines

subroutine quadmesh_clear (qdm)
 Destructor for quadMesh type. More...
 
type(quadmesh) function quadmesh_create (m)
  Constructor for the type quadMesh More...
 
subroutine quadmesh_set (qdm, quadType, f)
  Sets an integration method quadMesh More...
 
subroutine set_flagged_cells (qdm, cpt, quadType, flag)
 Set the integration method 'qdm' to 'quadType' on all cells 'cl' of compatible geometry that moreover satisfy flag(cl)==.TRUE. More...
 
subroutine quadmesh_assemble (qdm)
 Sets mdim, qdmquad_count. More...
 
subroutine quadmesh_print (qdm)
 number of cells per fe type More...
 
logical function quadmesh_valid (qdm)
 Check if assembling is correct. More...
 

Detailed Description

DERIVED TYPE quadMesh: integration methods on meshes

Given a mesh of a domain \( \Omega \),

A quadMesh 'qdm' is defined in three steps

  1. qdm = quadmesh(msh)
    associates 'qdm' with the mesh 'msh',
  2. call set(qdm, ...)
    associate the mesh cells to quadrature rules, see set documentation
    This can be done in more than one step to define different quadrature rules on different mesh subdomains.
  3. call assemble(qdm)
    ends up the construction.

Example: quadmesh_integral.f90
Consider a triangle mesh 'msh' of \( \Omega=[0,1]\times[0,1]\) including edge cells that mesh \( \partial \Omega \).

Author
Charles Pierre

Function/Subroutine Documentation

◆ quadmesh_assemble()

subroutine quadmesh_mod::quadmesh_assemble ( type(quadmesh), intent(inout)  qdm)
private

Sets mdim, qdmquad_count.

Definition at line 333 of file quadMesh_mod.f90.

Here is the call graph for this function:

◆ quadmesh_clear()

subroutine quadmesh_mod::quadmesh_clear ( type(quadmesh), intent(inout)  qdm)
private

Destructor for quadMesh type.

Definition at line 201 of file quadMesh_mod.f90.

◆ quadmesh_create()

type(quadmesh) function quadmesh_mod::quadmesh_create ( type(mesh), target  m)
private

Constructor for the type quadMesh

  • OUTPUT:
    • qdm = quadMesh

Definition at line 220 of file quadMesh_mod.f90.

Here is the call graph for this function:

◆ quadmesh_print()

subroutine quadmesh_mod::quadmesh_print ( type(quadmesh), intent(in)  qdm)
private

number of cells per fe type

Definition at line 361 of file quadMesh_mod.f90.

◆ quadmesh_set()

subroutine quadmesh_mod::quadmesh_set ( type(quadmesh), intent(inout)  qdm,
integer, intent(in)  quadType,
procedure(r3tor), optional  f 
)
private

Sets an integration method quadMesh

Given a quadrature rule 'quadType' with reference czell \(K_{\rm ref}\),

  1. select all the mesh cells associated to the same reference cell,
  2. optionnally (if 'f' is given) select among these cells those where \( f \ge 0 \),
  3. set on these cells the quadrature rule to 'quadType'.
  • INPUT:
    • quadType = a quadrature rule
    Optional:
    • f = a scalar function \( \R^3 \rightarrow \R \)

Definition at line 265 of file quadMesh_mod.f90.

Here is the call graph for this function:

◆ quadmesh_valid()

logical function quadmesh_mod::quadmesh_valid ( type (quadmesh), intent(in)  qdm)
private

Check if assembling is correct.

Definition at line 382 of file quadMesh_mod.f90.

◆ set_flagged_cells()

subroutine quadmesh_mod::set_flagged_cells ( type(quadmesh), intent(inout)  qdm,
integer, intent(out)  cpt,
integer, intent(in)  quadType,
logical, dimension(:), intent(in)  flag 
)
private

Set the integration method 'qdm' to 'quadType' on all cells 'cl' of compatible geometry that moreover satisfy flag(cl)==.TRUE.

Returns cpt = number of cells that have been set to 'quadType'

Definition at line 298 of file quadMesh_mod.f90.

Here is the call graph for this function: