0.6.0
Loading...
Searching...
No Matches
mod_solve_cell_allencahn_equation Module Reference

Solve the Allen-Cahn equation (experimental module, not followed anymore) More...

Enumerations

enum  { allencahn_stabilisation_none = 0 , allencahn_stabilisation_simple = 1 , allencahn_stabilisation_sav = 3 }
 

Functions/Subroutines

subroutine solve_allencahn_equation (phase_field, phase_field_n, phase_field_nm1, time_step, time_step_n, time_order_discretization, has_ghost_boundary_cells, allencahn_solver, mobility, thickness, energy_wall, undercooling_energy)
 Solve the Allen-Cahn equation.
 
subroutine solve_allencahn_equation_simple (phase_field, phase_field_n, phase_field_nm1, time_step, time_step_n, time_order_discretization, has_ghost_boundary_cells, allencahn_solver, mobility, thickness, energy_wall, undercooling_energy)
 
subroutine solve_allencahn_equation_sav (phase_field, phase_field_n, phase_field_nm1, time_step, time_step_n, time_order_discretization, has_ghost_boundary_cells, allencahn_solver, mobility, thickness, energy_wall, undercooling_energy)
 
elemental double precision function free_energy_derivative (phase_field, energy_wall, undercooling_energy)
 
elemental double precision function free_energy_function (phase_field, energy_wall, undercooling_energy)
 
elemental double precision function double_well_derivative (phase_field)
 
elemental double precision function interpolant_derivative (phase_field)
 
elemental double precision function double_well_function (phase_field)
 
elemental double precision function interpolant_function (phase_field)
 
double precision function, dimension(rhs_size) dominance (rhs_size, stencil, matrix)
 

Variables

integer, parameter allencahn_stabilisation = allencahn_stabilisation_simple
 
logical, parameter, private use_lipschitz_continuous_base_functions = .TRUE.
 

Detailed Description

Solve the Allen-Cahn equation (experimental module, not followed anymore)

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
allencahn_stabilisation_none 
allencahn_stabilisation_simple 
allencahn_stabilisation_sav 

Function/Subroutine Documentation

◆ dominance()

double precision function, dimension(rhs_size) mod_solve_cell_allencahn_equation::dominance ( integer, intent(in) rhs_size,
type(t_cell_stencil), intent(in) stencil,
double precision, dimension(rhs_size*stencil%size), intent(in) matrix )

◆ double_well_derivative()

elemental double precision function mod_solve_cell_allencahn_equation::double_well_derivative ( double precision, intent(in) phase_field)

◆ double_well_function()

elemental double precision function mod_solve_cell_allencahn_equation::double_well_function ( double precision, intent(in) phase_field)

◆ free_energy_derivative()

elemental double precision function mod_solve_cell_allencahn_equation::free_energy_derivative ( double precision, intent(in) phase_field,
double precision, intent(in) energy_wall,
double precision, intent(in) undercooling_energy )

◆ free_energy_function()

elemental double precision function mod_solve_cell_allencahn_equation::free_energy_function ( double precision, intent(in) phase_field,
double precision, intent(in) energy_wall,
double precision, intent(in) undercooling_energy )

◆ interpolant_derivative()

elemental double precision function mod_solve_cell_allencahn_equation::interpolant_derivative ( double precision, intent(in) phase_field)

◆ interpolant_function()

elemental double precision function mod_solve_cell_allencahn_equation::interpolant_function ( double precision, intent(in) phase_field)

◆ solve_allencahn_equation_sav()

subroutine mod_solve_cell_allencahn_equation::solve_allencahn_equation_sav ( double precision, dimension(:,:,:), intent(inout) phase_field,
double precision, dimension(:,:,:), intent(in) phase_field_n,
double precision, dimension(:,:,:), intent(in), allocatable phase_field_nm1,
double precision, intent(in) time_step,
double precision, intent(in) time_step_n,
integer, intent(in) time_order_discretization,
logical, intent(in) has_ghost_boundary_cells,
class(t_linear_solver), intent(inout) allencahn_solver,
double precision, intent(in) mobility,
double precision, intent(in) thickness,
double precision, intent(in) energy_wall,
double precision, dimension(:,:,:), intent(in) undercooling_energy )

◆ solve_allencahn_equation_simple()

subroutine mod_solve_cell_allencahn_equation::solve_allencahn_equation_simple ( double precision, dimension(:,:,:), intent(inout) phase_field,
double precision, dimension(:,:,:), intent(in) phase_field_n,
double precision, dimension(:,:,:), intent(in), allocatable phase_field_nm1,
double precision, intent(in) time_step,
double precision, intent(in) time_step_n,
integer, intent(in) time_order_discretization,
logical, intent(in) has_ghost_boundary_cells,
class(t_linear_solver), intent(inout) allencahn_solver,
double precision, intent(in) mobility,
double precision, intent(in) thickness,
double precision, intent(in) energy_wall,
double precision, dimension(:,:,:), intent(in) undercooling_energy )

Variable Documentation

◆ allencahn_stabilisation

integer, parameter mod_solve_cell_allencahn_equation::allencahn_stabilisation = allencahn_stabilisation_simple

◆ use_lipschitz_continuous_base_functions

logical, parameter, private mod_solve_cell_allencahn_equation::use_lipschitz_continuous_base_functions = .TRUE.
private