Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/elmerice/Tests/CovarianceVector/case.sif
3206 views
!#####################################################################
!# Test covariance vector product
!# Here the vector is initailised to 1 in (0.0,0.0)
!# The result should be the coraviance as a function of the distance 
!# (0.0,0.0)
!#
!# Test the results for a gievn set of methods
!# "MaternI" and "diffusion operator" should lead to similar results
!# for the same parameters
!# 
!# Rq.: Use different ElmerIceSolvers library files if using the same
!# solver several times as initialised variables are saved
!####################################################################
!###################################################################
!# Covariance paramteres
!###################################################################
$std=1.0
$range=0.1

$nu=2
$p=2

!#####################################################################
!# 
!####################################################################
Header :: Mesh DB "." "rectangle"

!#####################################################################
!# 
!####################################################################
Simulation
  Max Output Level = 3
  Coordinate System = Cartesian
  Simulation Type = Steady
  Output Intervals(1) = 1
  Steady State Max Iterations = 1
  !Post File   = "impulse1.vtu"
End

!#####################################################################
!# 
!####################################################################
Body 1
  Equation = 1
  Initial Condition = 1
End

!#####################################################################
!# 
!####################################################################
Initial Condition 1
  impulse = Variable Coordinate 1, Coordinate 2, "0.0", "0.0"
     Real procedure "Init" "Init"
End

!#################################################################
!# Equations
!#################################################################
Equation 1 :: Active Solvers(3) = 1 2 3

!#################################################################
!# Full-Matrix Matern correlation p=nu-1/2=integer
!#################################################################
Solver 1
  Equation = "MaternPCovariance"
  Variable = "CorrMP"
  Procedure = "ElmerIceSolvers" "CovarianceVectorMultiplySolver"

  input variable = string "impulse"

  Covariance type = string "Full matrix"

  correlation type = String "MaternP"

  MaternP polynomial order = Integer $p
  correlation range = Real $range
  standard deviation = Real $std


  Exported Variable 1 = string "impulse"
End

!#################################################################
!# Full-Matrix Matern correlation nu=Integer
!#################################################################
Solver 2
  Equation = "MaternICovariance"
  Variable = "CorrMI"
  Procedure = "ElmerIceSolvers2" "CovarianceVectorMultiplySolver"

  input variable = string "impulse"

  Covariance type = string "Full matrix"

  correlation type = String "MaternI"
  MaternI order = Integer $nu

  correlation range = Real $range
  standard deviation = Real $std


End

!#################################################################
!#  diffusion operator
!#################################################################
Solver 3
  Equation = "MaternOpCovariance"
  Variable = "Corrdo"
  Procedure = "ElmerIceSolvers3" "CovarianceVectorMultiplySolver"

  input variable = string "impulse"

  Covariance type = String "diffusion operator"

  Matern exponent m = Integer $nu+1
  correlation range = Real $range
  standard deviation = Real $std


  Linear System Solver = Direct
  Linear System Direct Method = umfpack

  Linear System Refactorize = Logical False
  Linear System Symmetric = Logical True
  Linear System Positive Definite = Logical True


End
!####################################################################
!# Boundary condition
!####################################################################
Boundary Condition 1
  Target Boundaries(4) = 1 2 3 4
End

Solver 1 :: Reference Norm = Real 0.17229124
Solver 1 :: Reference Norm Tolerance = Real 1.0e-4

Solver 2 :: Reference Norm = Real 1.51016526E-01
Solver 2 :: Reference Norm Tolerance = Real 1.0e-4

Solver 3 :: Reference Norm = Real 0.15337508
Solver 3 :: Reference Norm Tolerance = Real 1.0e-4