setup_implicit_solve Subroutine

public subroutine setup_implicit_solve(self, equi, mesh, penalisation, u, tstep_u, u_adv, u_bndval, diff_co, temperature_prefac, lambda, xi, co, rhs, apply_temperature_prefac)

Setup equation system for a neutrals diffusion equation on target variable u by setting lambda, xi, co, rhs coefficients in the helmholtz operator

Type Bound

neutrals_module_t

Arguments

Type IntentOptional Attributes Name
class(neutrals_module_t), intent(in) :: self

Instance of class

class(equilibrium_t), intent(in) :: equi

Equilibrium

type(mesh_cart_t), intent(in) :: mesh

Mesh (any) within poloidal plane

type(penalisation_t), intent(in) :: penalisation

Penalisation (any)

real(kind=GP), intent(in), dimension(mesh%get_n_points()) :: u

Target variable values at timepoint t (i.e. before implicit solve)

type(karniadakis_t), intent(in) :: tstep_u

Timestepper object for target variable

real(kind=GP), intent(inout), dimension(mesh%get_n_points()) :: u_adv

RHS of implicit solve (e.g. obtained from prior timestepping on explicit components)

real(kind=GP), intent(in), dimension(mesh%get_n_points_boundary()) :: u_bndval

Boundary values of target variable

real(kind=GP), intent(in), dimension(mesh%get_n_points()) :: diff_co

Effective diffusion coefficient, excluding the jacobian

real(kind=GP), intent(in), dimension(mesh%get_n_points()) :: temperature_prefac

Temperature prefactor in lambda when solving for (u T) instead of (u)

real(kind=GP), intent(out), dimension(mesh%get_n_points_inner()) :: lambda

Output lambda

real(kind=GP), intent(out), dimension(mesh%get_n_points_inner()) :: xi

Output xi

real(kind=GP), intent(out), dimension(mesh%get_n_points()) :: co

Output co

real(kind=GP), intent(out), dimension(mesh%get_n_points()) :: rhs

Output rhs

logical, intent(in), optional :: apply_temperature_prefac

Switch whether or not to apply temperature prefactor (default: true) If true, assumes implicit solve is for (u T) instead of (u) and result of the solve must be divided by T to obtain u at time t+1


Contents