Define and manipulate scalar-field values associated with a field-parent mesh Class
Result is new scalar_field from parent field
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(field), | intent(in) | :: | base | |||
| real(kind=psb_dpk_), | intent(in) | :: | x(:) | |||
| real(kind=psb_dpk_), | intent(in) | :: | bx(:) |
----- Algebra Operations -----
Set the left-hand-side scalar_field values to the provided constant
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(inout) | :: | f | |||
| real(kind=psb_dpk_), | intent(in) | :: | x |
----- Algebra Operations -----
Set the left-hand-side scalar_field values to the provided values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(inout) | :: | f | |||
| real(kind=psb_dpk_), | intent(in) | :: | x(:) |
----- Algebra Operations -----
Abort iff the scalar_field arguments are not associated with the same mesh
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(in) | :: | f1 | |||
| type(scalar_field), | intent(in) | :: | f2 | |||
| character(len=*), | intent(in) | :: | where |
----- Algebra Operations -----
Define scalar_field from mesh, dimensions, boundary conditions, materials, face-centeredness, and values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(out) | :: | fld | |||
| type(mesh), | intent(in), | target | :: | msh | ||
| type(dimensions), | intent(in), | optional | :: | dim | ||
| type(bc_poly), | intent(in), | optional | target | :: | bc(:) | |
| type(matptr), | intent(in), | optional | target | :: | mats(:) | |
| logical, | intent(in), | optional | :: | on_faces | ||
| real(kind=psb_dpk_), | intent(in), | optional | :: | x0 | ||
| character(len=*), | intent(in), | optional | :: | name |
----- Algebra Operations -----
Deallocate scalar_field components: field parent and component arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(inout) | :: | fld |
----- Algebra Operations -----
Get parent field
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(in) | :: | fld | |||
| type(field), | intent(out) | :: | base |
----- Algebra Operations -----
get scalar_field boundary values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(in) | :: | fld | |||
| real(kind=psb_dpk_), | intent(out), | allocatable | :: | bx(:) |
----- Algebra Operations -----
get one scalar_field value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(in) | :: | fld | |||
| real(kind=psb_dpk_), | intent(out) | :: | x | |||
| integer, | intent(in) | :: | i |
----- Algebra Operations -----
get one scalar_field previous value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(in) | :: | fld | |||
| real(kind=psb_dpk_), | intent(out) | :: | xp | |||
| integer, | intent(in) | :: | i |
----- Algebra Operations -----
Result is scalar_field material identifier
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(in) | :: | fld | |||
| integer, | intent(in) | :: | i |
----- Algebra Operations -----
get all scalar_field values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(in) | :: | fld | |||
| real(kind=psb_dpk_), | intent(out), | allocatable | :: | x(:) |
----- Algebra Operations -----
Get all scalar_field previous values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(in) | :: | fld | |||
| real(kind=psb_dpk_), | intent(out), | allocatable | :: | xp(:) |
----- Algebra Operations -----
Result contains scalar_field cell values interpolated onto cell faces
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(in) | :: | fld |
----- Algebra Operations -----
Result is L1 norm of scalar_field
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(in) | :: | fld |
----- Algebra Operations -----
Result is infinity-norm of scalar_field
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(in) | :: | fld |
----- Algebra Operations -----
Result is the scalar_field size
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(in) | :: | fld |
----- Algebra Operations -----
Result is the arithmetic difference of the two scalar_field operands
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(in) | :: | f1 | |||
| type(scalar_field), | intent(in) | :: | f2 |
----- Algebra Operations -----
Result is the arithmetic difference of the scalar_field operand and the constant operand
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(in) | :: | f1 | |||
| real(kind=psb_dpk_), | intent(in) | :: | f2 |
----- Algebra Operations -----
Result is the ratio of the left-hand-side numerator and right-hand-side denominator scalar_field objects
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(in) | :: | f1 | |||
| type(scalar_field), | intent(in) | :: | f2 |
----- Algebra Operations -----
REsult is the arithmetic product of two scalar_field objects
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(in) | :: | f1 | |||
| type(scalar_field), | intent(in) | :: | f2 |
----- Algebra Operations -----
Rescale the scalar_field argument by the provided multiplicative constant
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=psb_dpk_), | intent(in) | :: | a | |||
| class(scalar_field), | intent(in) | :: | f |
----- Algebra Operations -----
Result is the arithmetic sum of the two scalar_field operands
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(in) | :: | f1 | |||
| type(scalar_field), | intent(in) | :: | f2 |
----- Algebra Operations -----
Set one scalar_field value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(inout) | :: | f | |||
| integer, | intent(in) | :: | i | element number to set |
||
| real(kind=psb_dpk_), | intent(in) | :: | x | value |
----- Algebra Operations -----
Set a group of scalar field values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(inout) | :: | f | |||
| integer, | intent(in) | :: | ig | |||
| real(kind=psb_dpk_), | intent(in) | :: | x |
----- Algebra Operations -----
Set all scalar_field values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(scalar_field), | intent(inout) | :: | fld | |||
| type(matptr), | intent(in), | pointer | :: | mats(:) | ||
| type(scalar_field), | intent(in), | optional | :: | temp | temperature |
Encapsulate scalar-field state and operations, storing a mesh association in the parent field
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | private, | allocatable | :: | bmat(:) | |||
| real(kind=psb_dpk_), | private, | allocatable | :: | bx(:) | face values |
||
| integer, | private, | allocatable | :: | mat(:) | |||
| real(kind=psb_dpk_), | private, | allocatable | :: | x(:) | field nodal values |
||
| real(kind=psb_dpk_), | private, | allocatable | :: | xp(:) | previous nodal values |
| public function scalar_field_(base, x, bx) | Result is new scalar_field from parent field |
| generic, public :: assignment(=) => assign_scalar_field_s, assign_scalar_field_v | User-defined assignment |
| procedure, public :: bc_ | |
| procedure, public :: check_field_operands | |
| generic, public :: check_mesh_consistency => check_mesh_consistency_bf, check_mesh_consistency_sf | |
| procedure, public :: create_field | |
| procedure, public :: create_scalar_field | Constructor |
| generic, public :: dim_ => get_field_dim | |
| generic, public :: field_norm1 => nemo_scalar_field_norm1 | |
| generic, public :: field_normi => nemo_scalar_field_normi | |
| generic, public :: fld_size => get_field_size | |
| procedure, public :: free_field | Destructor |
| procedure, public :: get_base | |
| generic, public :: get_bx => get_scalar_field_bx | |
| generic, public :: get_material => get_field_mat_sub | |
| procedure, public :: get_mesh | |
| procedure, public :: get_scalar_field_mat_id | |
| procedure, public :: get_units | |
| generic, public :: get_x => get_scalar_field_x, get_scalar_field_element | |
| generic, public :: get_xp => get_scalar_field_xp, get_scalar_field_element_prev | |
| generic, public :: interp_on_faces => interp_on_faces_s | |
| procedure, public :: mark_as_defined | |
| procedure, public :: mat_ | |
| procedure, public :: msh_ | |
| procedure, public :: name_ | |
| procedure, public :: nemo_sizeof | |
| procedure, public :: on_faces_ | Getters |
| generic, public :: operator(*) => scalar_field_scal, scalar_field_mul | Algebra operations |
| generic, public :: operator(+) => scalar_field_sum | |
| generic, public :: operator(-) => scalar_field_dif, scalar_field_dif_s | |
| generic, public :: operator(/) => scalar_field_div | |
| procedure, public :: set_field_dim | |
| generic, public :: set_field_element => set_scalar_field_element | |
| generic, public :: set_field_group => set_scalar_field_group | |
| procedure, public :: set_field_on_faces | Setters |
| procedure, public :: set_units | |
| generic, public :: update_field => update_scalar_field | |
| procedure, public :: user_defined | |
| procedure, private :: assign_scalar_field_s | |
| procedure, private :: assign_scalar_field_v | |
| procedure, private :: check_mesh_consistency_sf | |
| procedure, private :: get_scalar_field_bx | |
| procedure, private :: get_scalar_field_element | |
| procedure, private :: get_scalar_field_element_prev | |
| procedure, private :: get_scalar_field_x | |
| procedure, private :: get_scalar_field_xp | |
| procedure, private :: interp_on_faces_s | |
| procedure, private :: nemo_scalar_field_norm1 | |
| procedure, private :: nemo_scalar_field_normi | |
| procedure, private :: scalar_field_dif | |
| procedure, private :: scalar_field_dif_s | |
| procedure, private :: scalar_field_div | |
| procedure, private :: scalar_field_mul | |
| procedure, private, pass(f) :: scalar_field_scal | |
| procedure, private :: scalar_field_sum | |
| procedure, private :: set_scalar_field_element | |
| procedure, private :: set_scalar_field_group | |
| procedure, private :: update_scalar_field |