| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | initialized | = | .FALSE. |
set to true in init, set to false in free |
|
| class(t_sBase), | public, | ALLOCATABLE | :: | s |
container for radial basis |
||
| type(t_fBase), | public, | ALLOCATABLE | :: | f |
container for angular basis |
compare self and input type base
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(t_base), | intent(in) | :: | sf |
self |
||
| class(t_base), | intent(in) | :: | tocompare | |||
| logical, | intent(out) | :: | is_same |
change basis from old input base to new base,
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(t_base), | intent(in) | :: | sf |
self |
||
| class(t_base), | intent(in) | :: | old_base | |||
| real(kind=wp), | intent(in) | :: | old_data(:,:) | |||
| real(kind=wp), | intent(out) | :: | sf_data(:,:) |
evaluate all degrees of freedom at all Gauss Points (deriv=0 solution, deriv=1 first derivative d/ds)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(t_base), | intent(in) | :: | sf |
self |
||
| integer, | intent(in) | :: | deriv(2) |
=(0,0): base, =(DERIV_S,0): ds, =(0,DERIV_THET): dtheta, =(0,DERIV_ZETA): dzeta |
||
| real(kind=wp), | intent(in) | :: | DOFs(1:sf%s%nBase,1:sf%f%modes) |
array of all modes and all radial dofs |
||
| real(kind=wp), | intent(out) | :: | y_IP_GP(sf%f%mn_IP,sf%s%nGP_str:sf%s%nGP_end) |
OUTPUT ARRAY OF MPI SUBDOMAIN (GP points) |
evaluate all degrees of freedom at all Gauss Points , for deriv=0 in s and deriv=0,theta,zeta in f
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(t_base), | intent(in) | :: | sf |
self |
||
| real(kind=wp), | intent(in) | :: | DOFs(1:sf%s%nBase,1:sf%f%modes) |
array of all modes and all radial dofs |
||
| real(kind=wp), | intent(out), | optional | :: | y_IP_GP(sf%f%mn_IP,sf%s%nGP_str:sf%s%nGP_end) |
value, OUTPUT ARRAY OF MPI SUBDOMAIN (GP points) |
|
| real(kind=wp), | intent(out), | optional | :: | dy_dthet_IP_GP(sf%f%mn_IP,sf%s%nGP_str:sf%s%nGP_end) |
derivative in theta, OUTPUT ARRAY OF MPI SUBDOMAIN (GP points) |
|
| real(kind=wp), | intent(out), | optional | :: | dy_dzeta_IP_GP(sf%f%mn_IP,sf%s%nGP_str:sf%s%nGP_end) |
derivative in zeta, OUTPUT ARRAY OF MPI SUBDOMAIN (GP points) |
evaluate all degrees of freedom at given s theta zeta position (deriv=0 solution, deriv=1 first derivative d/ds)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(t_base), | intent(in) | :: | sf |
self |
||
| real(kind=wp), | intent(in) | :: | x(3) |
s,theta,zeta |
||
| integer, | intent(in) | :: | deriv(2) |
=(0,0): base, =(DERIV_S,0): ds, =(0,DERIV_THET): dtheta, =(0,DERIV_ZETA): dzeta |
||
| real(kind=wp), | intent(in) | :: | DOFs(1:sf%s%nBase,1:sf%f%modes) |
array of all modes and all radial dofs |
TYPE :: t_base !--------------------------------------------------------------------------------------------------------------------------------- LOGICAL :: initialized=.FALSE. !! set to true in init, set to false in free !--------------------------------------------------------------------------------------------------------------------------------- CLASS(t_sbase),ALLOCATABLE :: s !! container for radial basis TYPE(t_fbase),ALLOCATABLE :: f !! container for angular basis CONTAINS PROCEDURE :: free => base_free PROCEDURE :: copy => base_copy PROCEDURE :: compare => base_compare PROCEDURE :: change_base => base_change_base PROCEDURE :: evalDOF => base_evalDOF PROCEDURE :: evalDOF_all => base_evalDOF_all PROCEDURE :: evalDOF_x => base_evalDOF_x END TYPE t_base