Prepares operators used by GRANS. This subroutine also builds the volume fraction Poisson operator with the specified boundary conditions.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(grans_obj), | intent(inout) | :: | this |
GRANS solver |
subroutine grans_obj_PrepareSolverOperators(this) !> Prepares operators used by GRANS. ! This subroutine also builds the volume fraction Poisson operator ! with the specified boundary conditions. use leapDiffOp implicit none class(grans_obj), intent(inout) :: this !! GRANS solver ! Work variables integer :: scheme_order character(str64) :: hypre_solver integer :: hypre_max_it real(wp) :: hypre_res_tol integer :: hypre_relax integer :: hypre_coarsen ! Get information from input call this%parser%Get("Scheme order", scheme_order, default = 2 ) ! Initialize basic differential operators call this%op%Initialize(this%block,this%parallel,order=scheme_order) if (this%use_RP .or. this%use_IB) then call this%parser%Get("VF Solver", hypre_solver, default = "IJ-AMG-NONE") call this%parser%Get("VF Max Iter", hypre_max_it, default = 30 ) call this%parser%Get("VF Convergence Tol", hypre_res_tol, default = 1.0e-4_wp ) call this%parser%Get("VF Relax Type", hypre_relax, default = 6 ) call this%parser%Get("VF Coarsen Type", hypre_coarsen, default = 11 ) ! Intialize volume fraction solver call this%VFSolver%Initialize(this%block,this%parallel) call this%VFSolver%SelectSolver(hypre_solver,MaxTol=hypre_res_tol,MaxIt=hypre_max_it, & RelaxType=hypre_relax,CoarsenType=hypre_coarsen) call grans_obj_PrepareSolverOperatorsVFLAP(this) end if return end subroutine grans_obj_PrepareSolverOperators