FE-Project
Loading...
Searching...
No Matches
scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase Type Reference

Base type for numerical error analysis of mesh field. More...

Inheritance diagram for scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase:
scale_meshfield_analysis_numerror::meshfieldanalysisnumerror1d scale_meshfield_analysis_numerror::meshfieldanalysisnumerror2d scale_meshfield_analysis_numerror::meshfieldanalysisnumerror3d

Public Member Functions

procedure init_base (this, porder_error_check, ndim, np, intrp_np, log_fname_base, log_step_interval, mesh, numerror_analysis_info)
 Initialize an object for numerical error analysis.
generic init (this, porder_error_check, ndim, np, intrp_np, log_fname_base, log_step_interval, mesh, numerror_analysis_info)
 Initialize an object for numerical error analysis.
procedure final (this)
 Finalize an object for numerical error analysis.
procedure regist (this, varname, unit, varid)
 Register a variable for numerical error analysis.
procedure evaluate_base (this, tstep, tsec, dom_vol, evaluate_error, calc_covariance)
 Evaluate numerical errors.
procedure evaluate_error_lc (base, num_error_l1_lc, num_error_l2_lc, num_error_linf_lc, numsol_mean_lc, exactsol_mean_lc, q, qexact, qexact_intrp, lcmesh, elem)
 Evaluate numerical errors at local mesh level.
procedure evaluate_covariance_lc (base, cov_numsol_numsol_lc, cov_numsol_exactsol_lc, cov_exactsol_exactsol_lc, q, qexact, qexact_intrp, numsol_mean, exactsol_mean, lcmesh, elem)
 Evaluate covariance of numerical and exact solutions at local mesh level.

Public Attributes

integer var_num
 Number of variables to be analyzed.
integer log_fid
 File ID for log output.
integer log_step_interval
 Interval of time step for log output.
integer log_rstep
 Remaining step for log output.
logical output_error_first
 Flag for outputting error at the first time.
class(meshbase), pointer mesh
 Pointer to an object of type MeshBase.
integer polyordererrorcheck
 Polynomial order when evaluating numerical errors.
integer intrp_np
 Number of interpolation points.
integer ndim
 Number of dimensions.
real(rp), dimension(:,:), allocatable intrpmat
 Interpolation matrix for numerical error evaluation.
real(rp), dimension(:), allocatable intw_intrp
 Weights of integration for interpolation points.
real(rp), dimension(:,:), allocatable epos_intrp
 Positions of interpolation points.
class(meshfieldanalysisnumerrorinfobase), pointer info
 Pointer to information for numerical error analysis.

Detailed Description

Base type for numerical error analysis of mesh field.

Definition at line 47 of file scale_meshfield_analysis_numerror_base.F90.

Member Function/Subroutine Documentation

◆ init_base()

procedure scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::init_base ( class(meshfieldanalysisnumerrorbase), intent(inout) this,
integer, intent(in) porder_error_check,
integer, intent(in) ndim,
integer, intent(in) np,
integer, intent(in) intrp_np,
character(len=*), intent(in) log_fname_base,
integer, intent(in) log_step_interval,
class(meshbase), intent(in), target mesh,
class(meshfieldanalysisnumerrorinfobase), intent(in), target numerror_analysis_info )

Initialize an object for numerical error analysis.

Parameters
[in]porder_error_checkPolynomial order when evaluating numerical errors
[in]ndimNumber of dimensions
[in]npNumber of nodes per element
[in]intrp_npNumber of interpolation points for numerical error evaluation
[in]log_fname_baseBase name of log file for numerical error analysis
[in]log_step_intervalInterval of time step for log output
[in]meshMesh for numerical error analysis
[in]numerror_analysis_infoInformation for numerical error analysis

Definition at line 65 of file scale_meshfield_analysis_numerror_base.F90.

◆ init()

generic scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::init ( class(meshfieldanalysisnumerrorbase), intent(inout) this,
integer, intent(in) porder_error_check,
integer, intent(in) ndim,
integer, intent(in) np,
integer, intent(in) intrp_np,
character(len=*), intent(in) log_fname_base,
integer, intent(in) log_step_interval,
class(meshbase), intent(in), target mesh,
class(meshfieldanalysisnumerrorinfobase), intent(in), target numerror_analysis_info )

Initialize an object for numerical error analysis.

Parameters
[in]porder_error_checkPolynomial order when evaluating numerical errors
[in]ndimNumber of dimensions
[in]npNumber of nodes per element
[in]intrp_npNumber of interpolation points for numerical error evaluation
[in]log_fname_baseBase name of log file for numerical error analysis
[in]log_step_intervalInterval of time step for log output
[in]meshMesh for numerical error analysis
[in]numerror_analysis_infoInformation for numerical error analysis

Definition at line 66 of file scale_meshfield_analysis_numerror_base.F90.

◆ final()

procedure scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::final ( class(meshfieldanalysisnumerrorbase), intent(inout) this)

Finalize an object for numerical error analysis.

Definition at line 67 of file scale_meshfield_analysis_numerror_base.F90.

◆ regist()

procedure scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::regist ( class(meshfieldanalysisnumerrorbase), intent(inout) this,
character(len=*), intent(in) varname,
character(len=*), intent(in) unit,
integer, intent(out) varid )

Register a variable for numerical error analysis.

Parameters
[in]varnameName of variable to be analyzed
[in]unitUnit of variable to be analyzed
[out]varidID of variable to be analyzed

Definition at line 68 of file scale_meshfield_analysis_numerror_base.F90.

◆ evaluate_base()

procedure scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::evaluate_base ( class(meshfieldanalysisnumerrorbase), intent(inout) this,
integer, intent(in) tstep,
real(rp) tsec,
real(rp), intent(in) dom_vol,
procedure(evaluate_error_interface) evaluate_error,
procedure(calc_covariance_interface) calc_covariance )

Evaluate numerical errors.

Definition at line 69 of file scale_meshfield_analysis_numerror_base.F90.

◆ evaluate_error_lc()

procedure scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::evaluate_error_lc ( class(meshfieldanalysisnumerrorbase), intent(in) base,
real(rp), dimension(base%var_num), intent(inout) num_error_l1_lc,
real(rp), dimension(base%var_num), intent(inout) num_error_l2_lc,
real(rp), dimension(base%var_num), intent(inout) num_error_linf_lc,
real(rp), dimension(base%var_num), intent(inout) numsol_mean_lc,
real(rp), dimension(base%var_num), intent(inout) exactsol_mean_lc,
real(rp), dimension(elem%np,lcmesh%ne,base%var_num), intent(in) q,
real(rp), dimension(elem%np,lcmesh%ne,base%var_num), intent(in) qexact,
real(rp), dimension(base%intrp_np,lcmesh%ne,base%var_num), intent(in) qexact_intrp,
class(localmeshbase), intent(in) lcmesh,
class(elementbase), intent(in) elem )

Evaluate numerical errors at local mesh level.

Definition at line 71 of file scale_meshfield_analysis_numerror_base.F90.

◆ evaluate_covariance_lc()

procedure scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::evaluate_covariance_lc ( class(meshfieldanalysisnumerrorbase), intent(in) base,
real(rp), dimension(base%var_num), intent(inout) cov_numsol_numsol_lc,
real(rp), dimension(base%var_num), intent(inout) cov_numsol_exactsol_lc,
real(rp), dimension(base%var_num), intent(inout) cov_exactsol_exactsol_lc,
real(rp), dimension(elem%np,lcmesh%ne,base%var_num), intent(in) q,
real(rp), dimension(elem%np,lcmesh%ne,base%var_num), intent(in) qexact,
real(rp), dimension(base%intrp_np,lcmesh%ne,base%var_num), intent(in) qexact_intrp,
real(rp), dimension(base%var_num), intent(in) numsol_mean,
real(rp), dimension(base%var_num), intent(in) exactsol_mean,
class(localmeshbase), intent(in) lcmesh,
class(elementbase), intent(in) elem )

Evaluate covariance of numerical and exact solutions at local mesh level.

Definition at line 72 of file scale_meshfield_analysis_numerror_base.F90.

Member Data Documentation

◆ var_num

integer scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::var_num

Number of variables to be analyzed.

Definition at line 48 of file scale_meshfield_analysis_numerror_base.F90.

48 integer :: var_num !< Number of variables to be analyzed

◆ log_fid

integer scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::log_fid

File ID for log output.

Definition at line 49 of file scale_meshfield_analysis_numerror_base.F90.

49 integer :: log_fid !< File ID for log output

◆ log_step_interval

integer scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::log_step_interval

Interval of time step for log output.

Definition at line 50 of file scale_meshfield_analysis_numerror_base.F90.

50 integer :: log_step_interval !< Interval of time step for log output

◆ log_rstep

integer scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::log_rstep

Remaining step for log output.

Definition at line 51 of file scale_meshfield_analysis_numerror_base.F90.

51 integer :: log_rstep !< Remaining step for log output

◆ output_error_first

logical scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::output_error_first

Flag for outputting error at the first time.

Definition at line 52 of file scale_meshfield_analysis_numerror_base.F90.

52 logical :: output_error_first !< Flag for outputting error at the first time

◆ mesh

class(meshbase), pointer scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::mesh

Pointer to an object of type MeshBase.

Definition at line 54 of file scale_meshfield_analysis_numerror_base.F90.

54 class(MeshBase), pointer :: mesh !< Pointer to an object of type MeshBase

◆ polyordererrorcheck

integer scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::polyordererrorcheck

Polynomial order when evaluating numerical errors.

Definition at line 56 of file scale_meshfield_analysis_numerror_base.F90.

56 integer :: PolyOrderErrorCheck !< Polynomial order when evaluating numerical errors

◆ intrp_np

integer scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::intrp_np

Number of interpolation points.

Definition at line 57 of file scale_meshfield_analysis_numerror_base.F90.

57 integer :: intrp_np !< Number of interpolation points

◆ ndim

integer scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::ndim

Number of dimensions.

Definition at line 58 of file scale_meshfield_analysis_numerror_base.F90.

58 integer :: ndim !< Number of dimensions

◆ intrpmat

real(rp), dimension(:,:), allocatable scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::intrpmat

Interpolation matrix for numerical error evaluation.

Definition at line 59 of file scale_meshfield_analysis_numerror_base.F90.

59 real(RP), allocatable :: IntrpMat(:,:) !< Interpolation matrix for numerical error evaluation

◆ intw_intrp

real(rp), dimension(:), allocatable scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::intw_intrp

Weights of integration for interpolation points.

Definition at line 60 of file scale_meshfield_analysis_numerror_base.F90.

60 real(RP), allocatable :: intw_intrp(:) !< Weights of integration for interpolation points

◆ epos_intrp

real(rp), dimension(:,:), allocatable scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::epos_intrp

Positions of interpolation points.

Definition at line 61 of file scale_meshfield_analysis_numerror_base.F90.

61 real(RP), allocatable :: epos_intrp(:,:) !< Positions of interpolation points

◆ info

class(meshfieldanalysisnumerrorinfobase), pointer scale_meshfield_analysis_numerror_base::meshfieldanalysisnumerrorbase::info

Pointer to information for numerical error analysis.

Definition at line 63 of file scale_meshfield_analysis_numerror_base.F90.

63 class(MeshFieldAnalysisNumerrorInfoBase), pointer :: info !< Pointer to information for numerical error analysis

The documentation for this type was generated from the following file: