OpenCMISS-Iron Internal API Documentation
|
This module contains all basis function routines. More...
Data Types | |
interface | basis_collapsed_xi_set |
Sets/changes the collapsed Xi flags for a basis. More... | |
interface | basis_evaluate_xi |
Evaluates the appropriate partial derivative index for the specificied basis function at a Xi location. More... | |
interface | basis_gauss_points_calculate |
Evaluates the list of gauss points and weights for a given basis type and order. More... | |
interface | basis_interpolate_gauss |
Interpolates the appropriate partial derivative index of the elements parameters for basis function at a Gauss point. More... | |
interface | basis_interpolate_local_face_gauss |
Interpolates the requested partial derivative index(ices) of the element parameters for basis function at a face Gauss point. More... | |
interface | basis_interpolate_xi |
Interpolates the appropriate partial derivative index of the elements parameters for basis function at Xi location. More... | |
interface | basis_interpolation_xi_set |
Sets/changes the interpolation type in each Xi direction for a basis. More... | |
interface | basis_lhtp_basis_evaluate |
Evaluates the Lagrange/Hermite/Fourier tensor product basis function for the given basis. More... | |
interface | basis_number_of_xi_set |
Sets/changes the number of Xi directions for a basis. More... | |
interface | basis_quadrature_order_set |
Sets/changes the order of a quadrature for a basis quadrature. More... | |
interface | basis_quadrature_type_set |
Sets/changes the quadrature type for a basis. More... | |
interface | basis_type_set |
Sets/changes the type for a basis. More... | |
interface | simplex_cubic_evaluate |
interface | simplex_linear_evaluate |
interface | simplex_quadratic_evaluate |
Functions/Subroutines | |
subroutine, public | bases_finalise (ERR, ERROR,) |
Finalises the bases and deallocates all memory. More... | |
subroutine, public | bases_initialise (ERR, ERROR,) |
Initialises the bases. More... | |
subroutine, public | basis_create_finish (BASIS, ERR, ERROR,) |
Finishes the creation of a new basis. More... | |
subroutine, public | basis_create_start (USER_NUMBER, BASIS, ERR, ERROR,) |
Starts the creation of a new basis The default values of the BASIS attributes are: More... | |
recursive subroutine | basis_destroy_number (USER_NUMBER, ERR, ERROR,) |
Destroys a basis identified by its basis user number. More... | |
recursive subroutine, public | basis_destroy (BASIS, ERR, ERROR,) |
Destroys a basis. More... | |
real(dp) function | basis_evaluate_xi_dp (BASIS, ELEMENT_PARAMETER_INDEX, PARTIAL_DERIV_INDEX, XI, ERR, ERROR) |
Evaluates the appropriate partial derivative index at position XI for the basis for double precision arguments. Note for simplex basis functions the XI coordinates should exclude the last area coordinate. More... | |
subroutine | basis_gauss_points_calculate_dp (basis, order, numCoords, numberGaussPoints, gaussPoints, gaussWeights, err, error,) |
Calculates the gauss points and weights for a basis function of a particular order. More... | |
recursive subroutine | basis_family_destroy (USER_NUMBER, FAMILY_NUMBER, ERR, ERROR,) |
Destroys a basis identified by its basis user number and family number. Called from the library visible routine BASIS_DESTROY. More... | |
recursive subroutine | basis_family_number_find (USER_NUMBER, FAMILY_NUMBER, BASIS, ERR, ERROR,) |
Finds and returns in BASIS a pointer to the basis with the given USER_NUMBER and FAMILY_NUMBER. If no basis with that number and family number exists then BASIS is returned nullified. More... | |
subroutine | basis_finalise (BASIS, ERR, ERROR,) |
Finalises a basis and deallocates all memory. More... | |
subroutine | basis_initialise (BASIS, ERR, ERROR,) |
Initialises a basis. More... | |
real(dp) function | basis_interpolate_gauss_dp (BASIS, PARTIAL_DERIV_INDEX, QUADRATURE_SCHEME, GAUSS_POINT_NUMBER, ELEMENT_PARAMETERS, ERR, ERROR) |
Interpolates the appropriate partial derivative index of the element parameters at a gauss point for the basis for double precision arguments. Note the interpolated value returned needs to be adjusted for the particular >coordinate system with COORDINATE_INTERPOLATE_ADJUST. More... | |
real(dp) function | basis_interpolate_local_face_gauss_dp (BASIS, PARTIAL_DERIV_INDEX, QUADRATURE_SCHEME, LOCAL_FACE_NUMBER, GAUSS_POINT_NUMBER, FACE_PARAMETERS, ERR, ERROR) |
Interpolates the appropriate partial derivative index of the element local face parameters at a face gauss point for the basis for double precision arguments. Note the interpolated value returned needs to be adjusted for the particular >coordinate system with COORDINATE_INTERPOLATE_ADJUST. More... | |
real(dp) function | basis_interpolate_xi_dp (BASIS, PARTIAL_DERIV_INDEX, XI, ELEMENT_PARAMETERS, ERR, ERROR) |
Interpolates the appropriate partial derivative index of the element parameters at position XI for the basis for double precision arguments. Note the interpolated value returned needs to be adjusted for the particular coordinate system with COORDINATE_INTERPOLATE_ADJUST. Note for simplex basis functions the XI coordinates should exclude the last area coordinate. More... | |
subroutine, public | basis_interpolation_xi_get (BASIS, INTERPOLATION_XI, ERR, ERROR,) |
Gets/changes the interpolation type in each xi directions for a basis identified by a pointer. More... | |
subroutine | basis_interpolation_xi_set_number (USER_NUMBER, INTERPOLATION_XI, ERR, ERROR,) |
Sets/changes the interpolation type in each xi directions where the basis is identified by user number. More... | |
subroutine | basis_interpolation_xi_set_ptr (BASIS, INTERPOLATION_XI, ERR, ERROR,) |
Sets/changes the interpolation type in each xi directions for a basis identified by a pointer. More... | |
subroutine | basis_lhtpbasiscreate (basis, err, error,) |
Creates and initialises a Lagrange-Hermite tensor product basis that has already been allocated BASIS_CREATE_START. More... | |
real(dp) function | basis_lhtp_basis_evaluate_dp (BASIS, NODE_NUMBER, DERIVATIVE_NUMBER, PARTIAL_DERIV_INDEX, XI, ERR, ERROR) |
Evaluates the double precision Lagrange/Hermite/Fourier tensor product basis function for the given BASIS. More... | |
subroutine | basis_lhtp_family_create (BASIS, ERR, ERROR,) |
Creates and initialises a Lagrange-Hermite tensor product basis family that has already been allocated by BASIS_CREATE_START. More... | |
subroutine | basis_radial_family_create (BASIS, ERR, ERROR,) |
Creates and initialises a Radial basis family that has already been allocated by BASIS_CREATE_START. More... | |
subroutine, public | basis_local_node_xi_calculate (BASIS, LOCAL_NODE_NUMBER, XI, ERR, ERROR,) |
Calculates the xi location of a local node in a basis. More... | |
subroutine, public | basis_number_of_local_nodes_get (BASIS, NUMBER_OF_LOCAL_NODES, ERR, ERROR,) |
Returns the number of local nodes in the specified basis. More... | |
subroutine, public | basis_number_of_xi_get (BASIS, NUMBER_OF_XI, ERR, ERROR,) |
Gets the number of xi directions for a basis. More... | |
subroutine | basis_number_of_xi_set_number (USER_NUMBER, NUMBER_OF_XI, ERR, ERROR,) |
Sets/changes the number of xi directions where the basis is identified by user number. More... | |
subroutine | basis_number_of_xi_set_ptr (BASIS, NUMBER_OF_XI, ERR, ERROR,) |
Sets/changes the number of xi directions for a basis identified by a pointer. More... | |
subroutine | basis_quadrature_create (BASIS, ERR, ERROR,) |
Creates the quadrature and quadrature schemes on a basis. More... | |
subroutine, public | basis_quadrature_destroy (QUADRATURE, ERR, ERROR,) |
Destroys a quadrature on a given basis and deallocates all memory. More... | |
subroutine | basis_quadrature_finalise (BASIS, ERR, ERROR,) |
Finalises a quadrature on a given basis and deallocates all memory. More... | |
subroutine | basis_quadrature_initialise (BASIS, ERR, ERROR,) |
Initialises a quadrature on the given basis. More... | |
subroutine, public | basis_quadrature_number_of_gauss_xi_get (BASIS, QUADRATURE_NUMBER_OF_GAUSS_XI, ERR, ERROR,) |
Get the number of Gauss points in each xi direction on a basis quadrature identified by a pointer. More... | |
subroutine, public | basis_quadrature_number_of_gauss_xi_set (BASIS, NUMBER_OF_GAUSS_XI, ERR, ERROR,) |
Sets/changes the number of Gauss points in each xi direction on a basis quadrature identified by a pointer. More... | |
subroutine, public | basis_quadrature_single_gauss_xi_get (BASIS, SCHEME, GAUSS_POINT, GAUSS_XI, ERR, ERROR,) |
Returns the xi positions of a Gauss point on a basis quadrature identified by a pointer. More... | |
subroutine, public | basis_quadrature_multiple_gauss_xi_get (BASIS, SCHEME, GAUSS_POINTS, GAUSS_XI, ERR, ERROR,) |
Returns the xi positions of Gauss points on a basis quadrature identified by a pointer. If no Gauss points are specified then xi positions of all Gauss points are returned. More... | |
subroutine, public | basis_quadrature_order_get (BASIS, QUADRATURE_ORDER, ERR, ERROR,) |
Get the order of a quadrature for a basis quadrature identified by a pointer. More... | |
subroutine | basis_quadrature_order_set_number (USER_NUMBER, ORDER, ERR, ERROR,) |
Sets/changes the order of a quadrature for a basis quadrature identified by a user number. More... | |
subroutine | basis_quadrature_order_set_ptr (BASIS, ORDER, ERR, ERROR,) |
Sets/changes the order of a quadrature for a basis quadrature identified by a pointer. More... | |
subroutine, public | basis_quadrature_type_get (BASIS, QUADRATURE_TYPE, ERR, ERROR,) |
get the quadrature type on a basis identified by a pointer. More... | |
subroutine | basis_quadrature_type_set_number (USER_NUMBER, TYPE, ERR, ERROR,) |
Sets/changes the quadrature type for a basis quadrature identified by a user number. More... | |
subroutine | basis_quadrature_type_set_ptr (BASIS, TYPE, ERR, ERROR,) |
Sets/changes the quadrature type on a basis identified by a pointer. More... | |
subroutine, public | basis_quadraturelocalfacegaussevaluateset (BASIS, FACE_GAUSS_EVALUATE, ERR, ERROR,) |
Sets/changes the local face Gauss evaluation flag on a basis. More... | |
subroutine | basis_simplex_basis_create (BASIS, ERR, ERROR,) |
Creates and initialises a simplex basis that has already been allocated BASIS_CREATE_START. More... | |
subroutine | basis_simplex_family_create (BASIS, ERR, ERROR,) |
Creates and initialises a simplex basis family that has already been allocated by BASIS_CREATE_START. More... | |
real(dp) function | basis_simplex_basis_evaluate (BASIS, NODE_NUMBER, PARTIAL_DERIV_INDEX, XL, ERR, ERROR) |
Evaluates a simplex basis function and its derivatives with respect to external coordinates. For Simplex line elements there are two area coordinates which are a function of : and .The derivatives wrt to external coordinates are then given by and . For Simplex triangle elements there are three area coordinates which are a function of and : , and . The derivatives wrt to external coordinates are then given by , , , and . For Simplex tetrahedral elements there are four area coordinates which are a function of , and : , , and . The derivatives wrt to external coordinates are then given by , , , , , , , and . More... | |
real(dp) function | basis_simplex_basis_derivative_evaluate (BASIS, NODE_NUMBER, PARTIAL_DERIV_INDEX, XL, ERR, ERROR) |
Evaluates partial derivatives of a simplex basis function with respect to area coordinates. More... | |
subroutine | basis_sub_basis_create (PARENT_BASIS, NUMBER_OF_XI, XI_DIRECTIONS, SUB_BASIS, ERR, ERROR,) |
Creates a sub-basis on a parent basis. More... | |
subroutine, public | basis_type_get (BASIS, TYPE, ERR, ERROR,) |
get the type for a basis is identified by a a pointer. More... | |
subroutine | basis_type_set_number (USER_NUMBER, TYPE, ERR, ERROR,) |
Sets/changes the type for a basis is identified by a user number. More... | |
subroutine | basis_type_set_ptr (BASIS, TYPE, ERR, ERROR,) |
Sets/changes the type for a basis is identified by a a pointer. More... | |
subroutine, public | basis_collapsed_xi_get (BASIS, COLLAPSED_XI, ERR, ERROR,) |
Gets the collapsed xi flags for a basis is identified by a a pointer. More... | |
subroutine | basis_collapsed_xi_set_number (USER_NUMBER, COLLAPSED_XI, ERR, ERROR,) |
Sets/changes the collapsed xi flags for a basis is identified by a user number. More... | |
subroutine | basis_collapsed_xi_set_ptr (BASIS, COLLAPSED_XI, ERR, ERROR,) |
Sets/changes the collapsed xi flags for a basis is identified by a a pointer. More... | |
subroutine, public | basis_user_number_find (USER_NUMBER, BASIS, ERR, ERROR,) |
Finds and returns in BASIS a pointer to the basis with the number given in USER_NUMBER. If no basis with that number exits BASIS is left nullified. More... | |
subroutine | gauss_legendre (N, ALPHA, BETA, X, W, ERR, ERROR,) |
This routine calculates the weights and abscissae for a Gauss-Legendre quadrature scheme. More... | |
subroutine | gauss_simplex (ORDER, NUMBER_OF_VERTICES, N, X, W, ERR, ERROR,) |
This routine calculates the weights and abscissae for a Gauss quadrature scheme for simplex elements. More... | |
real(dp) function | hermite_cubic_evaluate (NODE_INDEX, NODE_DERIVATIVE_INDEX, PARTIAL_DERIVATIVE_INDEX, XI, ERR, ERROR) |
Evaluates a 1D cubic Hermite basis function. More... | |
real(dp) function | hermite_quadratic_evaluate (NODE_INDEX, NODE_DERIVATIVE_INDEX, PARTIAL_DERIVATIVE_INDEX, SPECIAL_NODE_INDEX, XI, ERR, ERROR) |
Evaluates a 1D quadratic Hermite basis function. More... | |
real(dp) function | lagrange_cubic_evaluate (NODE_INDEX, PARTIAL_DERIVATIVE_INDEX, XI, ERR, ERROR) |
Evaluates a 1D cubic Lagrange basis function. More... | |
real(dp) function | lagrange_linear_evaluate (NODE_INDEX, PARTIAL_DERIVATIVE_INDEX, XI, ERR, ERROR) |
Evaluates a 1D linear Lagrange basis function. More... | |
real(dp) function | lagrange_quadratic_evaluate (NODE_INDEX, PARTIAL_DERIVATIVE_INDEX, XI, ERR, ERROR) |
Evaluates a 1D quadratic Lagrange basis function. More... | |
real(dp) function | simplex_cubic_evaluate_dp (NODE_INDEX, PARTIAL_DERIVATIVE_INDEX, XL, ERR, ERROR) |
Evaluates a cubic simpelx basis function at a specificed area position and node index and with a given partial derivative index with respect to area coordinates for double precision arguments. More... | |
real(dp) function | simplex_linear_evaluate_dp (NODE_INDEX, PARTIAL_DERIVATIVE_INDEX, XL, ERR, ERROR) |
Evaluates a linear simpelx basis function at a specificed area position and node index and with a given partial derivative index with respect to area coordinates for double precision arguments. More... | |
real(dp) function | simplex_quadratic_evaluate_dp (NODE_INDEX, PARTIAL_DERIVATIVE_INDEX, XL, ERR, ERROR) |
Evaluates a quadratic simpelx basis function at a specificed area position and node index and with a given partial derivative index with respect to area coordinates for double precision arguments. More... | |
Variables | |
integer(intg), parameter, public | basis_lagrange_hermite_tp_type =1 |
Lagrange-Hermite tensor product basis type. More... | |
integer(intg), parameter, public | basis_simplex_type =2 |
Simplex basis type. More... | |
integer(intg), parameter, public | basis_serendipity_type =3 |
Serendipity basis type. More... | |
integer(intg), parameter, public | basis_auxilliary_type =4 |
Auxillary basis type. More... | |
integer(intg), parameter, public | basis_b_spline_tp_type =5 |
B-spline basis type. More... | |
integer(intg), parameter, public | basis_fourier_lagrange_hermite_tp_type =6 |
Fourier-Lagrange tensor product basis type. More... | |
integer(intg), parameter, public | basis_extended_lagrange_tp_type =7 |
Extendend Lagrange tensor product basis type. More... | |
integer(intg), parameter, public | basis_radial_type =7 |
Radial basis typee. More... | |
integer(intg), parameter, public | basis_linear_lagrange_interpolation =1 |
Linear Lagrange interpolation specification. More... | |
integer(intg), parameter, public | basis_quadratic_lagrange_interpolation =2 |
Quadratic Lagrange interpolation specification. More... | |
integer(intg), parameter, public | basis_cubic_lagrange_interpolation =3 |
Cubic Lagrange interpolation specification. More... | |
integer(intg), parameter, public | basis_cubic_hermite_interpolation =4 |
Cubic Hermite interpolation specification. More... | |
integer(intg), parameter, public | basis_quadratic1_hermite_interpolation =5 |
Quadratic Hermite (no derivative at xi=0) interpolation specification. More... | |
integer(intg), parameter, public | basis_quadratic2_hermite_interpolation =6 |
Quadratic Hermite (no derivative at xi=1) interpolation specification. More... | |
integer(intg), parameter, public | basis_linear_simplex_interpolation =7 |
Linear Simplex interpolation specification. More... | |
integer(intg), parameter, public | basis_quadratic_simplex_interpolation =8 |
Quadratic Simplex interpolation specification. More... | |
integer(intg), parameter, public | basis_cubic_simplex_interpolation =9 |
Cubic Simplex interpolation specification. More... | |
integer(intg), parameter, public | basis_gaussian_radial_interpolation =10 |
Gaussian Radial interpolation specification. More... | |
integer(intg), parameter, public | basis_multiquartic_radial_interpolation =11 |
Multiquartic Radial interpolation specification. More... | |
integer(intg), parameter | basis_lagrange_interpolation =1 |
Lagrange interpolation. More... | |
integer(intg), parameter | basis_hermite_interpolation =2 |
Hermite interpolation. More... | |
integer(intg), parameter | basis_simplex_interpolation =3 |
Simplex interpolation. More... | |
integer(intg), parameter | basis_serendipity_interpolation =4 |
Serendipity interpolation. More... | |
integer(intg), parameter | basis_transition_interpolation =5 |
Transition interpolation. More... | |
integer(intg), parameter | basis_singular_interpolation =6 |
Singular interpolation. More... | |
integer(intg), parameter | basis_fourier_interpolation =7 |
Fourier interpolation. More... | |
integer(intg), parameter | basis_radial_interpolation =8 |
Radial interpolation. More... | |
integer(intg), parameter, public | basis_linear_interpolation_order =1 |
Linear interpolation order. More... | |
integer(intg), parameter, public | basis_quadratic_interpolation_order =2 |
Quadratic interpolation order. More... | |
integer(intg), parameter, public | basis_cubic_interpolation_order =3 |
Cubic interpolation order. More... | |
integer(intg), parameter, public | basis_quadratic1_interpolation_order =4 |
Quadratic (no derivative at xi=0) interpolation order. More... | |
integer(intg), parameter, public | basis_quadratic2_interpolation_order =5 |
Quadratic (no derivative at xi=1) interpolation order. More... | |
integer(intg), parameter | basis_number_of_quadrature_scheme_types =4 |
The number of currently defined quadrature schemes. More... | |
integer(intg), parameter, public | basis_default_quadrature_scheme =1 |
Identifier for the default quadrature scheme. More... | |
integer(intg), parameter, public | basis_low_quadrature_scheme =2 |
Identifier for a low order quadrature scheme. More... | |
integer(intg), parameter, public | basis_mid_quadrature_scheme =3 |
Identifier for a mid order quadrature scheme. More... | |
integer(intg), parameter, public | basis_high_quadrature_scheme =4 |
Identifier for a high order quadrature scheme. More... | |
integer(intg), parameter, public | basis_gauss_legendre_quadrature =1 |
Gauss-Legendre quadrature. More... | |
integer(intg), parameter, public | basis_gauss_laguerre_quadrature =2 |
Gauss-Laguerre quadrature. More... | |
integer(intg), parameter, public | basis_guass_hermite_quadrature =3 |
Gauss-Hermite quadrature. More... | |
integer(intg), parameter, public | basis_adaptive_gauss_legendre_quadrature =4 |
Adaptive Gauss-Legendre quadrature. More... | |
integer(intg), parameter, public | basis_gauss_simplex_quadrature =5 |
Gauss-Legendre for Simplex elements quadrature. More... | |
integer(intg), parameter, public | basis_xi_collapsed =1 |
The Xi direction is collapsed. More... | |
integer(intg), parameter, public | basis_collapsed_at_xi0 =2 |
The Xi direction at the xi=0 end of this Xi direction is collapsed. More... | |
integer(intg), parameter, public | basis_collapsed_at_xi1 =3 |
The Xi direction at the xi=1 end of this Xi direction is collapsed. More... | |
integer(intg), parameter, public | basis_not_collapsed =4 |
The Xi direction is not collapsed. More... | |
type(basis_functions_type), public | basis_functions |
The tree of defined basis functions. More... | |
This module contains all basis function routines.
subroutine, public basis_routines::bases_finalise | ( | integer(intg), intent(out) | ERR, |
type(varying_string), intent(out) | ERROR | ||
) |
Finalises the bases and deallocates all memory.
[out] | err | The error code |
[out] | error | The error string |
Definition at line 318 of file basis_routines.f90.
References basis_destroy(), basis_functions, base_routines::enters(), and base_routines::exits().
Referenced by cmiss::cmfe_finalise_().
subroutine, public basis_routines::bases_initialise | ( | integer(intg), intent(out) | ERR, |
type(varying_string), intent(out) | ERROR | ||
) |
Initialises the bases.
[out] | err | The error code |
[out] | error | The error string |
Definition at line 347 of file basis_routines.f90.
References basis_functions, base_routines::enters(), and base_routines::exits().
Referenced by cmiss::cmfe_initialise_().
subroutine, public basis_routines::basis_collapsed_xi_get | ( | type(basis_type), pointer | BASIS, |
integer(intg), dimension(:), intent(out) | COLLAPSED_XI, | ||
integer(intg), intent(out) | ERR, | ||
type(varying_string), intent(out) | ERROR | ||
) |
Gets the collapsed xi flags for a basis is identified by a a pointer.
basis | A pointer to the basis | |
[out] | collapsed_xi | COLLAPSED_XI(ni). On return, the collapse parameter for each Xi direction. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 5620 of file basis_routines.f90.
References base_routines::enters(), and base_routines::exits().
Referenced by fieldml_output_routines::fieldml_output_create_basis_reference(), and fieldml_output_routines::fieldml_output_get_connectivity_ensemble().
|
private |
Sets/changes the collapsed xi flags for a basis is identified by a user number.
[in] | user_number | The user number of the basis to be set |
[in] | collapsed_xi | COLLAPSED_XI(ni). The collapse parameter for each Xi direction. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 5660 of file basis_routines.f90.
References basis_collapsed_xi_set_ptr(), basis_user_number_find(), base_routines::enters(), and base_routines::exits().
|
private |
Sets/changes the collapsed xi flags for a basis is identified by a a pointer.
basis | A pointer to the basis | |
[in] | collapsed_xi | COLLAPSED_XI(ni). The collapse parameter for each Xi direction. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 5686 of file basis_routines.f90.
References basis_collapsed_at_xi0, basis_collapsed_at_xi1, basis_cubic_hermite_interpolation, basis_lagrange_hermite_tp_type, basis_not_collapsed, basis_quadratic1_hermite_interpolation, basis_quadratic2_hermite_interpolation, basis_xi_collapsed, base_routines::enters(), base_routines::exits(), constants::other_xi_directions2, and constants::other_xi_directions3.
Referenced by basis_collapsed_xi_set_number().
subroutine, public basis_routines::basis_create_finish | ( | type(basis_type), pointer | BASIS, |
integer(intg), intent(out) | ERR, | ||
type(varying_string), intent(out) | ERROR | ||
) |
Finishes the creation of a new basis.
basis | A pointer to the basis to finish the creation of | |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 371 of file basis_routines.f90.
References basis_lagrange_hermite_tp_type, basis_lhtp_family_create(), basis_radial_family_create(), basis_radial_type, basis_simplex_family_create(), basis_simplex_type, base_routines::diagnostic_output_type, base_routines::diagnostics1, base_routines::enters(), and base_routines::exits().
Referenced by field_io_routines::field_io_import_global_mesh().
subroutine, public basis_routines::basis_create_start | ( | integer(intg), intent(in) | USER_NUMBER, |
type(basis_type), pointer | BASIS, | ||
integer(intg), intent(out) | ERR, | ||
type(varying_string), intent(out) | ERROR | ||
) |
Starts the creation of a new basis The default values of the BASIS attributes are:
[in] | user_number | The user number of the basis to start the creation of |
basis | A pointer to the created basis. Must not be associated on entry. | |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 575 of file basis_routines.f90.
References basis_destroy(), basis_functions, basis_initialise(), basis_lagrange_hermite_tp_type, basis_linear_lagrange_interpolation, basis_not_collapsed, basis_quadrature_initialise(), basis_user_number_find(), base_routines::enters(), and base_routines::exits().
Referenced by field_io_routines::field_io_import_global_mesh(), and fieldml_input_routines::fieldml_input_basis_create_start().
recursive subroutine, public basis_routines::basis_destroy | ( | type(basis_type), pointer | BASIS, |
integer(intg), intent(out) | ERR, | ||
type(varying_string), intent(out) | ERROR | ||
) |
Destroys a basis.
basis | A pointer to the basis to destroy | |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 679 of file basis_routines.f90.
References basis_family_destroy(), base_routines::enters(), and base_routines::exits().
Referenced by bases_finalise(), and basis_create_start().
|
private |
Destroys a basis identified by its basis user number.
[in] | user_number | The user number of the basis to destroy |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 655 of file basis_routines.f90.
References basis_family_destroy(), base_routines::enters(), and base_routines::exits().
|
private |
Evaluates the appropriate partial derivative index at position XI for the basis for double precision arguments. Note for simplex basis functions the XI coordinates should exclude the last area coordinate.
basis | A pointer to the basis | |
[in] | element_parameter_index | The element parameter index to evaluate i.e., the local basis index within the element basis. |
[in] | partial_deriv_index | The partial derivative index to evaluate |
[in] | xi | The Xi position to evaluate the basis function at |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 711 of file basis_routines.f90.
References basis_lagrange_hermite_tp_type, basis_radial_type, basis_simplex_basis_evaluate(), basis_simplex_type, base_routines::enters(), and base_routines::exits().
|
private |
Destroys a basis identified by its basis user number and family number. Called from the library visible routine BASIS_DESTROY.
[in] | user_number | The user number of the basis to destroy |
[in] | family_number | The family number of the basis to destroy |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 890 of file basis_routines.f90.
References basis_family_number_find(), basis_finalise(), basis_functions, base_routines::enters(), and base_routines::exits().
Referenced by basis_destroy(), basis_destroy_number(), basis_lhtp_family_create(), and basis_simplex_family_create().
|
private |
Finds and returns in BASIS a pointer to the basis with the given USER_NUMBER and FAMILY_NUMBER. If no basis with that number and family number exists then BASIS is returned nullified.
[in] | user_number | The user number of the basis to find |
[in] | family_number | The family number of the basis to find |
basis | On exit, A pointer to the basis. If no basis with the specified user and family numbers can be found the pointer is not associated. | |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 982 of file basis_routines.f90.
References basis_functions, base_routines::enters(), and base_routines::exits().
Referenced by basis_family_destroy(), and basis_user_number_find().
|
private |
Finalises a basis and deallocates all memory.
basis | A pointer to the basis to finalise | |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 1030 of file basis_routines.f90.
References basis_quadrature_finalise(), base_routines::enters(), and base_routines::exits().
Referenced by basis_family_destroy().
|
private |
Calculates the gauss points and weights for a basis function of a particular order.
basis | A pointer to the basis | |
[in] | order | The order (for Simplex) or the number of gauss points in a direction (for LHTP) |
[in] | numcoords | The number of coordinate directions of the system in which to calculate gauss points (1D, 2D, 3D) |
[out] | numbergausspoints | on return, the number of gauss points calculated |
[out] | gausspoints | On return, the calculated gauss point coordinates gaussPoints(nj,ng) |
[out] | gaussweights | gaussWeights(ng) gauss weight for particular gauss point |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 776 of file basis_routines.f90.
References basis_lagrange_hermite_tp_type, basis_simplex_type, base_routines::enters(), base_routines::exits(), gauss_legendre(), and gauss_simplex().
|
private |
Initialises a basis.
basis | A pointer to the basis to initialise | |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 1085 of file basis_routines.f90.
References base_routines::enters(), and base_routines::exits().
Referenced by basis_create_start().
|
private |
Interpolates the appropriate partial derivative index of the element parameters at a gauss point for the basis for double precision arguments. Note the interpolated value returned needs to be adjusted for the particular >coordinate system with COORDINATE_INTERPOLATE_ADJUST.
basis | A pointer to the basis | |
[in] | partial_deriv_index | The partial derivative index to interpolate |
[in] | quadrature_scheme | The quadrature scheme to use |
[in] | gauss_point_number | The Gauss point number in the scheme to interpolte |
[in] | element_parameters | The element parameters to interpolate |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 1135 of file basis_routines.f90.
References basis_number_of_quadrature_scheme_types, base_routines::enters(), and base_routines::exits().
|
private |
Interpolates the appropriate partial derivative index of the element local face parameters at a face gauss point for the basis for double precision arguments. Note the interpolated value returned needs to be adjusted for the particular >coordinate system with COORDINATE_INTERPOLATE_ADJUST.
basis | A pointer to the basis | |
[in] | partial_deriv_index | The partial derivative index to interpolate |
[in] | quadrature_scheme | The quadrature scheme to use |
[in] | local_face_number | The index number of the face to interpolate on |
[in] | gauss_point_number | The face Gauss point number in the scheme to interpolate |
[in] | face_parameters | The face parameters to interpolate (in 3D coordinates) |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 1199 of file basis_routines.f90.
References basis_number_of_quadrature_scheme_types, base_routines::enters(), and base_routines::exits().
|
private |
Interpolates the appropriate partial derivative index of the element parameters at position XI for the basis for double precision arguments. Note the interpolated value returned needs to be adjusted for the particular coordinate system with COORDINATE_INTERPOLATE_ADJUST. Note for simplex basis functions the XI coordinates should exclude the last area coordinate.
basis | A pointer to the basis | |
[in] | partial_deriv_index | The partial derivative index to interpolate |
[in] | xi | The Xi position to interpolate the basis function at |
[in] | element_parameters | The element parameters to interpolate |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 1272 of file basis_routines.f90.
References basis_lagrange_hermite_tp_type, basis_radial_type, basis_simplex_basis_evaluate(), basis_simplex_type, base_routines::enters(), and base_routines::exits().
subroutine, public basis_routines::basis_interpolation_xi_get | ( | type(basis_type), pointer | BASIS, |
integer(intg), dimension(:), intent(out) | INTERPOLATION_XI, | ||
integer(intg), intent(out) | ERR, | ||
type(varying_string), intent(out) | ERROR | ||
) |
Gets/changes the interpolation type in each xi directions for a basis identified by a pointer.
basis | A pointer to the basis to get the interpolation xi | |
[out] | interpolation_xi | On return, the interpolation xi parameters for each Xi direction |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 1337 of file basis_routines.f90.
References base_routines::enters(), and base_routines::exits().
Referenced by fieldml_output_routines::fieldml_output_create_basis_reference(), and fieldml_output_routines::fieldml_output_get_connectivity_ensemble().
|
private |
Sets/changes the interpolation type in each xi directions where the basis is identified by user number.
[in] | user_number | The user number of the basis to set the interpolation xi |
[in] | interpolation_xi | The interpolation xi parameters for each Xi direction |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 1378 of file basis_routines.f90.
References basis_user_number_find(), base_routines::enters(), and base_routines::exits().
|
private |
Sets/changes the interpolation type in each xi directions for a basis identified by a pointer.
basis | A pointer to the basis to set the interpolation xi | |
[in] | interpolation_xi | The interpolation xi parameters for each Xi direction |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 1404 of file basis_routines.f90.
References basis_cubic_hermite_interpolation, basis_cubic_lagrange_interpolation, basis_cubic_simplex_interpolation, basis_lagrange_hermite_tp_type, basis_linear_lagrange_interpolation, basis_linear_simplex_interpolation, basis_quadratic1_hermite_interpolation, basis_quadratic2_hermite_interpolation, basis_quadratic_lagrange_interpolation, basis_quadratic_simplex_interpolation, basis_simplex_type, base_routines::enters(), and base_routines::exits().
|
private |
Evaluates the double precision Lagrange/Hermite/Fourier tensor product basis function for the given BASIS.
basis | A pointer to the basis to evaluate | |
[in] | node_number | The local node number of the tensor product basis to evaluate |
[in] | derivative_number | The local derivative number of the tensor product basis to evaluate |
[in] | partial_deriv_index | The partial derivative index to interpolate |
[in] | xi | The Xi position to evaluate the basis function at |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 2266 of file basis_routines.f90.
References basis_cubic_interpolation_order, basis_hermite_interpolation, basis_lagrange_interpolation, basis_linear_interpolation_order, basis_quadratic1_interpolation_order, basis_quadratic2_interpolation_order, basis_quadratic_interpolation_order, basis_xi_collapsed, base_routines::enters(), base_routines::exits(), hermite_cubic_evaluate(), hermite_quadratic_evaluate(), lagrange_cubic_evaluate(), lagrange_linear_evaluate(), lagrange_quadratic_evaluate(), and constants::partial_derivative_index.
|
private |
Creates and initialises a Lagrange-Hermite tensor product basis family that has already been allocated by BASIS_CREATE_START.
basis | A pointer to the basis to create | |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 2397 of file basis_routines.f90.
References basis_family_destroy(), basis_lhtpbasiscreate(), basis_sub_basis_create(), base_routines::enters(), base_routines::exits(), and constants::other_xi_directions3.
Referenced by basis_create_finish().
|
private |
Creates and initialises a Lagrange-Hermite tensor product basis that has already been allocated BASIS_CREATE_START.
basis | A pointer to the basis to create | |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 1480 of file basis_routines.f90.
References basis_collapsed_at_xi0, basis_collapsed_at_xi1, basis_cubic_hermite_interpolation, basis_cubic_interpolation_order, basis_cubic_lagrange_interpolation, basis_hermite_interpolation, basis_lagrange_hermite_tp_type, basis_lagrange_interpolation, basis_linear_interpolation_order, basis_linear_lagrange_interpolation, basis_not_collapsed, basis_quadratic1_hermite_interpolation, basis_quadratic1_interpolation_order, basis_quadratic2_hermite_interpolation, basis_quadratic2_interpolation_order, basis_quadratic_interpolation_order, basis_quadratic_lagrange_interpolation, basis_quadrature_create(), basis_xi_collapsed, base_routines::enters(), base_routines::exits(), constants::first_part_deriv, constants::no_part_deriv, constants::other_xi_directions2, constants::other_xi_directions3, constants::part_deriv_s1, constants::part_deriv_s1_s2, constants::part_deriv_s1_s2_s3, constants::part_deriv_s1_s3, constants::part_deriv_s2, constants::part_deriv_s2_s3, and constants::part_deriv_s3.
Referenced by basis_lhtp_family_create().
subroutine, public basis_routines::basis_local_node_xi_calculate | ( | type(basis_type), pointer | BASIS, |
integer(intg), intent(in) | LOCAL_NODE_NUMBER, | ||
real(dp), dimension(:), intent(out) | XI, | ||
integer(intg), intent(out) | ERR, | ||
type(varying_string), intent(out) | ERROR | ||
) |
Calculates the xi location of a local node in a basis.
basis | A pointer to the basis to calculate the xi for | |
[in] | local_node_number | The local node number to calculate the xi for |
[out] | xi | XI(ni). On return, the xi position of the local node in the basis |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 2536 of file basis_routines.f90.
References basis_auxilliary_type, basis_b_spline_tp_type, basis_extended_lagrange_tp_type, basis_fourier_lagrange_hermite_tp_type, basis_lagrange_hermite_tp_type, basis_serendipity_type, basis_simplex_type, base_routines::enters(), and base_routines::exits().
subroutine, public basis_routines::basis_number_of_local_nodes_get | ( | type(basis_type), pointer | BASIS, |
integer(intg), intent(out) | NUMBER_OF_LOCAL_NODES, | ||
integer(intg), intent(out) | ERR, | ||
type(varying_string), intent(out) | ERROR | ||
) |
Returns the number of local nodes in the specified basis.
basis | A pointer to the basis to get the number of nodes | |
[out] | number_of_local_nodes | On return, the number of local nodes in the basis |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 2610 of file basis_routines.f90.
References base_routines::enters(), and base_routines::exits().
subroutine, public basis_routines::basis_number_of_xi_get | ( | type(basis_type), pointer | BASIS, |
integer(intg), intent(out) | NUMBER_OF_XI, | ||
integer(intg), intent(out) | ERR, | ||
type(varying_string), intent(out) | ERROR | ||
) |
Gets the number of xi directions for a basis.
basis | A pointer to the basis function to change | |
[out] | number_of_xi | On return, the number of Xi directions to get. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 2638 of file basis_routines.f90.
References base_routines::enters(), and base_routines::exits().
Referenced by fieldml_output_routines::fieldml_output_create_basis_reference(), and fieldml_output_routines::fieldml_output_get_connectivity_ensemble().
|
private |
Sets/changes the number of xi directions where the basis is identified by user number.
[in] | user_number | The user number of the basis |
[in] | number_of_xi | The number of Xi directions to be set. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 2670 of file basis_routines.f90.
References basis_user_number_find(), base_routines::enters(), and base_routines::exits().
|
private |
Sets/changes the number of xi directions for a basis identified by a pointer.
basis | A pointer to the basis function to change | |
[in] | number_of_xi | The number of Xi directions to set. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 2696 of file basis_routines.f90.
References basis_lagrange_hermite_tp_type, basis_simplex_type, base_routines::enters(), and base_routines::exits().
|
private |
Creates the quadrature and quadrature schemes on a basis.
basis | A pointer to the basis | |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 2816 of file basis_routines.f90.
References basis_default_quadrature_scheme, basis_gauss_laguerre_quadrature, basis_gauss_legendre_quadrature, basis_gauss_simplex_quadrature, basis_guass_hermite_quadrature, basis_lagrange_hermite_tp_type, basis_number_of_quadrature_scheme_types, basis_simplex_basis_evaluate(), basis_simplex_type, base_routines::diagnostic_output_type, base_routines::diagnostics1, base_routines::diagnostics2, base_routines::diagnostics3, base_routines::enters(), base_routines::exits(), gauss_legendre(), gauss_simplex(), and constants::other_xi_directions3.
Referenced by basis_lhtpbasiscreate(), and basis_simplex_basis_create().
subroutine, public basis_routines::basis_quadrature_destroy | ( | type(quadrature_type), pointer | QUADRATURE, |
integer(intg), intent(out) | ERR, | ||
type(varying_string), intent(out) | ERROR | ||
) |
Destroys a quadrature on a given basis and deallocates all memory.
quadrature | A pointer to the quadrature | |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 3187 of file basis_routines.f90.
References base_routines::enters(), and base_routines::exits().
|
private |
Finalises a quadrature on a given basis and deallocates all memory.
basis | A pointer to the basis | |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 3214 of file basis_routines.f90.
References base_routines::enters(), and base_routines::exits().
Referenced by basis_finalise(), and basis_type_set_ptr().
|
private |
Initialises a quadrature on the given basis.
basis | A pointer to the basis | |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 3262 of file basis_routines.f90.
References basis_cubic_hermite_interpolation, basis_cubic_lagrange_interpolation, basis_cubic_simplex_interpolation, basis_gauss_legendre_quadrature, basis_gauss_simplex_quadrature, basis_lagrange_hermite_tp_type, basis_linear_lagrange_interpolation, basis_linear_simplex_interpolation, basis_quadratic1_hermite_interpolation, basis_quadratic2_hermite_interpolation, basis_quadratic_lagrange_interpolation, basis_quadratic_simplex_interpolation, basis_simplex_type, base_routines::enters(), and base_routines::exits().
Referenced by basis_create_start(), basis_sub_basis_create(), and basis_type_set_ptr().
subroutine, public basis_routines::basis_quadrature_multiple_gauss_xi_get | ( | type(basis_type), pointer | BASIS, |
integer(intg), intent(in) | SCHEME, | ||
integer(intg), dimension(:), intent(in) | GAUSS_POINTS, | ||
real(dp), dimension(:,:), intent(out) | GAUSS_XI, | ||
integer(intg), intent(out) | ERR, | ||
type(varying_string), intent(out) | ERROR | ||
) |
Returns the xi positions of Gauss points on a basis quadrature identified by a pointer. If no Gauss points are specified then xi positions of all Gauss points are returned.
basis | A pointer to the basis | |
[in] | scheme | The quadrature scheme to return the Gauss points for |
[in] | gauss_points | The Gauss points to return the element xi positions for. |
[out] | gauss_xi | On return, GAUSS_XI(xi_direction,Gauss_point) the Gauss xi positions for the specified quadrature scheme. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 3584 of file basis_routines.f90.
References base_routines::enters(), and base_routines::exits().
subroutine, public basis_routines::basis_quadrature_number_of_gauss_xi_get | ( | type(basis_type), pointer | BASIS, |
integer(intg), dimension(:), intent(out) | QUADRATURE_NUMBER_OF_GAUSS_XI, | ||
integer(intg), intent(out) | ERR, | ||
type(varying_string), intent(out) | ERROR | ||
) |
Get the number of Gauss points in each xi direction on a basis quadrature identified by a pointer.
basis | A pointer to the basis | |
[out] | quadrature_number_of_gauss_xi | On return, the number of Gauss in each Xi direction |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 3387 of file basis_routines.f90.
References base_routines::enters(), and base_routines::exits().
subroutine, public basis_routines::basis_quadrature_number_of_gauss_xi_set | ( | type(basis_type), pointer | BASIS, |
integer(intg), dimension(:), intent(in) | NUMBER_OF_GAUSS_XI, | ||
integer(intg), intent(out) | ERR, | ||
type(varying_string), intent(out) | ERROR | ||
) |
Sets/changes the number of Gauss points in each xi direction on a basis quadrature identified by a pointer.
basis | A pointer to the basis | |
[in] | number_of_gauss_xi | The number of Gauss in each Xi direction |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 3433 of file basis_routines.f90.
References basis_cubic_hermite_interpolation, basis_cubic_lagrange_interpolation, basis_linear_lagrange_interpolation, basis_linear_simplex_interpolation, basis_quadratic1_hermite_interpolation, basis_quadratic2_hermite_interpolation, basis_quadratic_lagrange_interpolation, basis_quadratic_simplex_interpolation, base_routines::enters(), and base_routines::exits().
subroutine, public basis_routines::basis_quadrature_order_get | ( | type(basis_type), pointer | BASIS, |
integer(intg), intent(out) | QUADRATURE_ORDER, | ||
integer(intg), intent(out) | ERR, | ||
type(varying_string), intent(out) | ERROR | ||
) |
Get the order of a quadrature for a basis quadrature identified by a pointer.
basis | A pointer to the basis | |
[out] | quadrature_order | On return, the quadrature order for the specified basis. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 3656 of file basis_routines.f90.
References base_routines::enters(), and base_routines::exits().
|
private |
Sets/changes the order of a quadrature for a basis quadrature identified by a user number.
[in] | user_number | The user number of the basis |
[in] | order | The quadrature order to be set. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 3692 of file basis_routines.f90.
References basis_user_number_find(), base_routines::enters(), and base_routines::exits().
|
private |
Sets/changes the order of a quadrature for a basis quadrature identified by a pointer.
basis | A pointer to the basis | |
[in] | order | The quadrature order to be set. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 3718 of file basis_routines.f90.
References basis_simplex_type, base_routines::enters(), and base_routines::exits().
subroutine, public basis_routines::basis_quadrature_single_gauss_xi_get | ( | type(basis_type), pointer | BASIS, |
integer(intg), intent(in) | SCHEME, | ||
integer(intg), intent(in) | GAUSS_POINT, | ||
real(dp), dimension(:), intent(out) | GAUSS_XI, | ||
integer(intg), intent(out) | ERR, | ||
type(varying_string), intent(out) | ERROR | ||
) |
Returns the xi positions of a Gauss point on a basis quadrature identified by a pointer.
basis | A pointer to the basis | |
[in] | scheme | The quadrature scheme to return the Gauss points for |
[in] | gauss_point | The Gauss point to return the element xi position for. |
[out] | gauss_xi | On return, GAUSS_XI(xi_direction) the xi position of the specified Gauss point for the specified quadrature scheme. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 3525 of file basis_routines.f90.
References base_routines::enters(), and base_routines::exits().
subroutine, public basis_routines::basis_quadrature_type_get | ( | type(basis_type), pointer | BASIS, |
integer(intg), intent(out) | QUADRATURE_TYPE, | ||
integer(intg), intent(out) | ERR, | ||
type(varying_string), intent(out) | ERROR | ||
) |
get the quadrature type on a basis identified by a pointer.
basis | A pointer to the basis | |
[out] | quadrature_type | On return, the quadrature type to be get |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 3765 of file basis_routines.f90.
References base_routines::enters(), and base_routines::exits().
|
private |
Sets/changes the quadrature type for a basis quadrature identified by a user number.
[in] | user_number | The user number of the basis |
[in] | type | The quadrature type to be set |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 3801 of file basis_routines.f90.
References basis_quadrature_type_set_ptr(), basis_user_number_find(), base_routines::enters(), and base_routines::exits().
|
private |
Sets/changes the quadrature type on a basis identified by a pointer.
basis | A pointer to the basis | |
[in] | type | The quadrature type to be set |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 3827 of file basis_routines.f90.
References basis_gauss_laguerre_quadrature, basis_gauss_legendre_quadrature, basis_guass_hermite_quadrature, base_routines::enters(), and base_routines::exits().
Referenced by basis_quadrature_type_set_number().
subroutine, public basis_routines::basis_quadraturelocalfacegaussevaluateset | ( | type(basis_type), pointer | BASIS, |
logical, intent(in) | FACE_GAUSS_EVALUATE, | ||
integer(intg), intent(out) | ERR, | ||
type(varying_string), intent(out) | ERROR | ||
) |
Sets/changes the local face Gauss evaluation flag on a basis.
basis | A pointer to the basis | |
[in] | face_gauss_evaluate | face Gauss evaluation flag |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 3876 of file basis_routines.f90.
References base_routines::enters(), and base_routines::exits().
|
private |
Creates and initialises a Radial basis family that has already been allocated by BASIS_CREATE_START.
basis | A pointer to the basis to create | |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 2506 of file basis_routines.f90.
References base_routines::enters(), and base_routines::exits().
Referenced by basis_create_finish().
|
private |
Creates and initialises a simplex basis that has already been allocated BASIS_CREATE_START.
basis | A pointer to the basis | |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 3909 of file basis_routines.f90.
References basis_cubic_interpolation_order, basis_cubic_simplex_interpolation, basis_linear_interpolation_order, basis_linear_simplex_interpolation, basis_quadratic_interpolation_order, basis_quadratic_simplex_interpolation, basis_quadrature_create(), basis_simplex_interpolation, basis_simplex_type, base_routines::enters(), base_routines::exits(), constants::first_part_deriv, and constants::no_part_deriv.
Referenced by basis_simplex_family_create().
|
private |
Evaluates partial derivatives of a simplex basis function with respect to area coordinates.
basis | A pointer to the basis function to evaluate. | |
[in] | node_number | The node number defines the actual basis function to evaluate. |
[in] | partial_deriv_index | The partial derivative index in area coordinates of the basis to evaluate. |
[in] | xl | XL(nic). The area coordinates to evaluate the basis function at. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 5349 of file basis_routines.f90.
References basis_cubic_interpolation_order, basis_linear_interpolation_order, basis_quadratic_interpolation_order, base_routines::enters(), base_routines::exits(), and constants::partial_derivative_index.
Referenced by basis_simplex_basis_evaluate().
|
private |
Evaluates a simplex basis function and its derivatives with respect to external coordinates. For Simplex line elements there are two area coordinates which are a function of : and .The derivatives wrt to external coordinates are then given by and . For Simplex triangle elements there are three area coordinates which are a function of and : , and . The derivatives wrt to external coordinates are then given by , , , and . For Simplex tetrahedral elements there are four area coordinates which are a function of , and : , , and . The derivatives wrt to external coordinates are then given by , , , , , , , and .
basis | A pointer to the basis function to evaluate. | |
[in] | node_number | The node number defines the actual basis function to evaluate. |
[in] | partial_deriv_index | The partial derivative index in Xi space of the basis to evaluate. |
[in] | xl | XL(nic). The area coordinates to evaluate the basis function at. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 5113 of file basis_routines.f90.
References basis_simplex_basis_derivative_evaluate(), basis_simplex_type, base_routines::enters(), base_routines::exits(), constants::no_part_deriv, constants::part_deriv_s1, constants::part_deriv_s1_s1, constants::part_deriv_s1_s2, constants::part_deriv_s1_s2_s3, constants::part_deriv_s1_s2_s4, constants::part_deriv_s1_s3, constants::part_deriv_s1_s3_s4, constants::part_deriv_s1_s4, constants::part_deriv_s1_s4_s4, constants::part_deriv_s2, constants::part_deriv_s2_s2, constants::part_deriv_s2_s3, constants::part_deriv_s2_s3_s4, constants::part_deriv_s2_s4, constants::part_deriv_s2_s4_s4, constants::part_deriv_s3, constants::part_deriv_s3_s3, constants::part_deriv_s3_s4, constants::part_deriv_s3_s4_s4, constants::part_deriv_s4, constants::part_deriv_s4_s4, and constants::part_deriv_s4_s4_s4.
Referenced by basis_evaluate_xi_dp(), basis_interpolate_xi_dp(), and basis_quadrature_create().
|
private |
Creates and initialises a simplex basis family that has already been allocated by BASIS_CREATE_START.
basis | A pointer to the basis | |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 4953 of file basis_routines.f90.
References basis_family_destroy(), basis_simplex_basis_create(), basis_sub_basis_create(), base_routines::enters(), base_routines::exits(), and constants::other_xi_directions3.
Referenced by basis_create_finish().
|
private |
Creates a sub-basis on a parent basis.
parent_basis | A pointer to the parent basis | |
[in] | number_of_xi | The number of Xi directions to create |
[in] | xi_directions | XI_DIRECTIONS(ni). Gives the Xi direction indices of the parent basis which are used to create the sub-basis |
sub_basis | On return, a pointer to the created sub-basis. The pointer must be NULL on entry. | |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 5404 of file basis_routines.f90.
References basis_collapsed_at_xi0, basis_collapsed_at_xi1, basis_not_collapsed, basis_quadrature_initialise(), basis_xi_collapsed, base_routines::enters(), and base_routines::exits().
Referenced by basis_lhtp_family_create(), and basis_simplex_family_create().
subroutine, public basis_routines::basis_type_get | ( | type(basis_type), pointer | BASIS, |
integer(intg), intent(out) | TYPE, | ||
integer(intg), intent(out) | ERR, | ||
type(varying_string), intent(out) | ERROR | ||
) |
get the type for a basis is identified by a a pointer.
basis | A pointer to the basis to get | |
[out] | type | On return, the type of the specified basis. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 5515 of file basis_routines.f90.
References base_routines::enters(), and base_routines::exits().
Referenced by fieldml_output_routines::fieldml_output_create_basis_reference(), and fieldml_output_routines::fieldml_output_get_connectivity_ensemble().
|
private |
Sets/changes the type for a basis is identified by a user number.
[in] | user_number | The user number of the basis to set. |
[in] | type | The type of the basis to set |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 5547 of file basis_routines.f90.
References basis_type_set_ptr(), basis_user_number_find(), base_routines::enters(), and base_routines::exits().
|
private |
Sets/changes the type for a basis is identified by a a pointer.
basis | A pointer to the basis to set | |
[in] | type | The type of the basis to be set. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 5573 of file basis_routines.f90.
References basis_lagrange_hermite_tp_type, basis_linear_simplex_interpolation, basis_quadrature_finalise(), basis_quadrature_initialise(), basis_simplex_type, base_routines::enters(), and base_routines::exits().
Referenced by basis_type_set_number().
subroutine, public basis_routines::basis_user_number_find | ( | integer(intg), intent(in) | USER_NUMBER, |
type(basis_type), pointer | BASIS, | ||
integer(intg), intent(out) | ERR, | ||
type(varying_string), intent(out) | ERROR | ||
) |
Finds and returns in BASIS a pointer to the basis with the number given in USER_NUMBER. If no basis with that number exits BASIS is left nullified.
[in] | user_number | The user number of the basis to find. |
basis | On exit, a pointer to the found basis. If no basis with the given user number exists the pointer is NULL. | |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 5847 of file basis_routines.f90.
References basis_family_number_find(), base_routines::enters(), and base_routines::exits().
Referenced by basis_collapsed_xi_set_number(), basis_create_start(), basis_interpolation_xi_set_number(), basis_number_of_xi_set_number(), basis_quadrature_order_set_number(), basis_quadrature_type_set_number(), basis_type_set_number(), and fieldml_input_routines::fieldml_input_create_mesh_component().
|
private |
This routine calculates the weights and abscissae for a Gauss-Legendre quadrature scheme.
[in] | n | The number of of Gauss points required. |
[in] | alpha | The lower limit of the integration scheme |
[in] | beta | The upper limit of the integration scheme |
[out] | x | X(i). On exit the i'th Gauss point location |
[out] | w | W(i). On exit the i'th Gauss point weight. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 5872 of file basis_routines.f90.
References base_routines::diagnostic_output_type, base_routines::diagnostics1, base_routines::diagnostics2, base_routines::enters(), and base_routines::exits().
Referenced by basis_gauss_points_calculate_dp(), and basis_quadrature_create().
|
private |
This routine calculates the weights and abscissae for a Gauss quadrature scheme for simplex elements.
Reference: Liu, Yen and Vinokur, Marcel. "Exact Integrations of Polynomials and Symmetric Quadrature Formulas over Arbitrary Polyhedral Grids", Journal of Computational Physics, 140:122-147 (1998).
[in] | order | The desired order of the scheme. Currently, the maximum order is 5. |
[in] | number_of_vertices | The number of vertices. 2, 3 or 4 for lines, triangles or tetrahedra. |
[out] | n | On exit, the number of Gauss points |
[out] | x | X(nj,ng). On exit, the returned positions in area coordinates. |
[out] | w | W(ng). On exit, the returned weights. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 5960 of file basis_routines.f90.
References base_routines::diagnostic_output_type, base_routines::diagnostics1, base_routines::diagnostics2, base_routines::enters(), base_routines::exits(), and constants::twopi.
Referenced by basis_gauss_points_calculate_dp(), and basis_quadrature_create().
|
private |
Evaluates a 1D cubic Hermite basis function.
[in] | node_index | The local node number of the basis. Must be between 1 and 2. |
[in] | node_derivative_index | The local derivative number of the basis. Must be between 1 and 2. |
[in] | partial_derivative_index | The partial derivative index to evaluate. |
[in] | xi | The Xi location to evaluate the basis at. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 6699 of file basis_routines.f90.
References base_routines::enters(), base_routines::exits(), constants::first_part_deriv, constants::no_part_deriv, and constants::second_part_deriv.
Referenced by basis_lhtp_basis_evaluate_dp().
|
private |
Evaluates a 1D quadratic Hermite basis function.
[in] | node_index | The local node number of the basis. Must be between 1 and 2. |
[in] | node_derivative_index | The local derivative number of the basis. Must be between 1 and 2. |
[in] | partial_derivative_index | The partial derivative index to evaluate. |
[in] | special_node_index | The local node number with no derivative term. |
[in] | xi | The Xi location to evaluate the basis at. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 6810 of file basis_routines.f90.
References base_routines::enters(), base_routines::exits(), constants::first_part_deriv, constants::no_part_deriv, and constants::second_part_deriv.
Referenced by basis_lhtp_basis_evaluate_dp().
|
private |
Evaluates a 1D cubic Lagrange basis function.
[in] | node_index | The local node of the basis to evaluate. Must be between 1 and 4. |
[in] | partial_derivative_index | The partial derivative to evaluate. |
[in] | xi | The Xi location to evaluate the basis at. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 6991 of file basis_routines.f90.
References base_routines::enters(), base_routines::exits(), constants::first_part_deriv, constants::no_part_deriv, and constants::second_part_deriv.
Referenced by basis_lhtp_basis_evaluate_dp().
|
private |
Evaluates a 1D linear Lagrange basis function.
[in] | node_index | The local node of the basis to evaluate. Must be between 1 and 2. |
[in] | partial_derivative_index | The partial derivative to evaluate. |
[in] | xi | The Xi location to evaluate the basis at. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 7061 of file basis_routines.f90.
References base_routines::enters(), base_routines::exits(), constants::first_part_deriv, constants::no_part_deriv, and constants::second_part_deriv.
Referenced by basis_lhtp_basis_evaluate_dp().
|
private |
Evaluates a 1D quadratic Lagrange basis function.
[in] | node_index | The local node of the basis to evaluate. Must be between 1 and 3. |
[in] | partial_derivative_index | The partial derivative to evaluate. |
[in] | xi | The Xi location to evaluate the basis at. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 7119 of file basis_routines.f90.
References base_routines::enters(), base_routines::exits(), constants::first_part_deriv, constants::no_part_deriv, and constants::second_part_deriv.
Referenced by basis_lhtp_basis_evaluate_dp().
|
private |
Evaluates a cubic simpelx basis function at a specificed area position and node index and with a given partial derivative index with respect to area coordinates for double precision arguments.
[in] | node_index | The node index to evaluate |
[in] | partial_derivative_index | The partial derivative index wrt area coordinates to evaluate |
[in] | xl | The area coordinate to evaluate at. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 7184 of file basis_routines.f90.
References base_routines::enters(), base_routines::exits(), constants::first_part_deriv, constants::no_part_deriv, constants::second_part_deriv, and constants::third_part_deriv.
|
private |
Evaluates a linear simpelx basis function at a specificed area position and node index and with a given partial derivative index with respect to area coordinates for double precision arguments.
[in] | node_index | The node index to evaluate |
[in] | partial_derivative_index | The partial derivative index wrt area coordinates to evaluate |
[in] | xl | The area coordinate to evaluate at. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 7269 of file basis_routines.f90.
References base_routines::enters(), base_routines::exits(), constants::first_part_deriv, constants::no_part_deriv, constants::second_part_deriv, and constants::third_part_deriv.
|
private |
Evaluates a quadratic simpelx basis function at a specificed area position and node index and with a given partial derivative index with respect to area coordinates for double precision arguments.
[in] | node_index | The node index to evaluate |
[in] | partial_derivative_index | The partial derivative index wrt area coordinates to evaluate |
[in] | xl | The area coordinate to evaluate at. |
[out] | err | The error code |
[out] | error | The error string |
Definition at line 7337 of file basis_routines.f90.
References base_routines::enters(), base_routines::exits(), constants::first_part_deriv, constants::no_part_deriv, constants::second_part_deriv, and constants::third_part_deriv.
type(basis_functions_type), public basis_routines::basis_functions |
The tree of defined basis functions.
Definition at line 163 of file basis_routines.f90.
Referenced by bases_finalise(), bases_initialise(), basis_create_start(), basis_family_destroy(), basis_family_number_find(), and field_io_routines::field_io_import_global_mesh().