Neko 1.99.3
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
ale_manager Module Reference

ALE Manager: Handles Mesh Motion.

Data Types

type  ale_manager_t
 

Functions/Subroutines

subroutine ale_manager_init (this, coef, json, user)
 Initialize ALE Manager Sets up solver, registers fields, solves for base shape, etc.
 
subroutine solve_base_mesh_displacement (this, coef, abstol, ksp_solver, ksp_max_iter, precon_type, precon_params, res_monitor)
 Solves the Laplace equation to determine the base shape (phi) for each body. It finds a smooth blending function for mesh deformation. For body i: phi_i = 1 on body i zones, phi_i = 0 on all other boundaries. should be modified for device support (ToDo)
 
subroutine update_mesh_velocity (this, coef, time_s)
 Updates the mesh velocity field based on current time and kinematics Sums contributions from all bodies: mesh_vel = Sum( V_i * Phi_i )
 
subroutine advance_mesh (this, coef, time, nadv)
 Main routine to advance the mesh in time.
 
subroutine, public compute_stiffness_ale (coef, params)
 
subroutine, public add_kinematics_to_mesh_velocity (wx, wy, wz, x_ref, y_ref, z_ref, phi, coef, kinematics, rot_mat, initial_pivot_loc)
 
subroutine, public update_ale_mesh (c_xh, wm_x, wm_y, wm_z, wm_x_lag, wm_y_lag, wm_z_lag, time, nadv, scheme_)
 
subroutine ale_manager_free (this)
 
subroutine ale_precon_factory (pc, ksp, coef, dof, gs, bclst, pctype, params)
 Factory for ALE Preconditioner.
 
subroutine set_pivot_restart (this, time_restart)
 
subroutine set_coef_restart (this, coef, adv, time_restart)
 
subroutine set_pivot_basis_for_checkpoint (this, body_idx)
 
subroutine append_unique_int (arr, n, val)
 
subroutine mesh_preview (this, coef, json)
 Performs a preview of the mesh motion to verify quality/topology.
 
subroutine save_mesh_preview_step (coef, dummy_field, out_file, t_state, step, file_index)
 
integer function request_tracker (this, initial_pos, body_id)
 
real(kind=rp) function, dimension(3) get_tracker_pos (this, handle)
 
subroutine compute_rotation_matrix (this, body_idx, time)
 Computes Rotation Matrix.
 
subroutine, public log_rot_angles (this, time, body_idxs)
 Logs rotation angles for all or selected bodies. can be called in usercompute. eg: call neko_alelog_rot_angles(time, body_idxs)
 
subroutine, public log_pivot (this, time, body_idxs)
 Logs pivot positions for all or selected bodies. can be called in usercompute. eg: call neko_alelog_pivot(time, body_idxs)
 
subroutine ghost_tracker_coord_step (this, kin_object, time_s, nadv, body_idx)
 
subroutine get_ale_solver_params_json (this, json, ksp_solver, precon_type, precon_params, abstol, ksp_max_iter, res_monitor)
 

Variables

type(ale_manager_t), pointer, public neko_ale => null()
 

Function/Subroutine Documentation

◆ add_kinematics_to_mesh_velocity()

subroutine, public ale_manager::add_kinematics_to_mesh_velocity ( type(field_t), intent(inout wx,
type(field_t), intent(inout wy,
type(field_t), intent(inout wz,
type(field_t), intent(in x_ref,
type(field_t), intent(in y_ref,
type(field_t), intent(in z_ref,
type(field_t), intent(in phi,
type(coef_t), intent(in coef,
type(body_kinematics_t), intent(in kinematics,
real(kind=rp), dimension(3,3), intent(in rot_mat,
real(kind=rp), dimension(3), intent(in initial_pivot_loc 
)

Definition at line 1162 of file ale_manager.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ advance_mesh()

subroutine ale_manager::advance_mesh ( class(ale_manager_t), intent(inout this,
type(coef_t), intent(inout coef,
type(time_state_t), intent(in time,
integer, intent(in nadv 
)
private

Definition at line 1110 of file ale_manager.f90.

Here is the call graph for this function:

◆ ale_manager_free()

subroutine ale_manager::ale_manager_free ( class(ale_manager_t), intent(inout), target  this)
private

Definition at line 1201 of file ale_manager.f90.

◆ ale_manager_init()

subroutine ale_manager::ale_manager_init ( class(ale_manager_t), intent(inout), target  this,
type(coef_t), intent(inout coef,
type(json_file), intent(inout json,
type(user_t), intent(in user 
)
private

Definition at line 168 of file ale_manager.f90.

Here is the call graph for this function:

◆ ale_precon_factory()

subroutine ale_manager::ale_precon_factory ( class(pc_t), intent(inout), allocatable, target  pc,
class(ksp_t), intent(inout), target  ksp,
type(coef_t), intent(in), target  coef,
type(dofmap_t), intent(in), target  dof,
type(gs_t), intent(inout), target  gs,
type(bc_list_t), intent(inout), target  bclst,
character(len=*), intent(in pctype,
type(json_file), intent(inout params 
)
private

Definition at line 1244 of file ale_manager.f90.

Here is the caller graph for this function:

◆ append_unique_int()

subroutine ale_manager::append_unique_int ( integer, dimension(:), intent(inout), allocatable  arr,
integer, intent(inout n,
integer, intent(in val 
)
private

Definition at line 1381 of file ale_manager.f90.

Here is the caller graph for this function:

◆ compute_rotation_matrix()

subroutine ale_manager::compute_rotation_matrix ( class(ale_manager_t), intent(inout this,
integer, intent(in body_idx,
type(time_state_t), intent(in time 
)
private

Definition at line 1603 of file ale_manager.f90.

◆ compute_stiffness_ale()

subroutine, public ale_manager::compute_stiffness_ale ( type(coef_t), intent(inout coef,
type(ale_config_t), intent(in params 
)

Definition at line 1151 of file ale_manager.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_ale_solver_params_json()

subroutine ale_manager::get_ale_solver_params_json ( class(ale_manager_t), intent(inout this,
type(json_file), intent(inout json,
character(len=:), intent(inout), allocatable  ksp_solver,
character(len=:), intent(inout), allocatable  precon_type,
type(json_file), intent(inout precon_params,
real(kind=rp), intent(out abstol,
integer, intent(out ksp_max_iter,
logical, intent(out res_monitor 
)
private

Definition at line 1799 of file ale_manager.f90.

Here is the caller graph for this function:

◆ get_tracker_pos()

real(kind=rp) function, dimension(3) ale_manager::get_tracker_pos ( class(ale_manager_t), intent(in this,
integer, intent(in handle 
)
private

Definition at line 1589 of file ale_manager.f90.

◆ ghost_tracker_coord_step()

subroutine ale_manager::ghost_tracker_coord_step ( class(ale_manager_t), intent(inout this,
type(body_kinematics_t), intent(in kin_object,
type(time_state_t), intent(in time_s,
integer, intent(in nadv,
integer, intent(in body_idx 
)
private

Definition at line 1754 of file ale_manager.f90.

Here is the call graph for this function:

◆ log_pivot()

subroutine, public ale_manager::log_pivot ( class(ale_manager_t), intent(in this,
type(time_state_t), intent(in time,
integer, dimension(:), intent(in), optional  body_idxs 
)

Definition at line 1703 of file ale_manager.f90.

◆ log_rot_angles()

subroutine, public ale_manager::log_rot_angles ( class(ale_manager_t), intent(in this,
type(time_state_t), intent(in time,
integer, dimension(:), intent(in), optional  body_idxs 
)

Definition at line 1648 of file ale_manager.f90.

◆ mesh_preview()

subroutine ale_manager::mesh_preview ( class(ale_manager_t), intent(inout this,
type(coef_t), intent(inout coef,
type(json_file), intent(inout json 
)
private

Definition at line 1404 of file ale_manager.f90.

Here is the call graph for this function:

◆ request_tracker()

integer function ale_manager::request_tracker ( class(ale_manager_t), intent(inout this,
real(kind=rp), dimension(3), intent(in initial_pos,
integer, intent(in body_id 
)
private

Definition at line 1561 of file ale_manager.f90.

◆ save_mesh_preview_step()

subroutine ale_manager::save_mesh_preview_step ( type(coef_t), intent(inout coef,
type(field_t), intent(inout dummy_field,
type(file_t), intent(inout out_file,
type(time_state_t), intent(in t_state,
integer, intent(in step,
integer, intent(inout file_index 
)
private

Definition at line 1535 of file ale_manager.f90.

Here is the caller graph for this function:

◆ set_coef_restart()

subroutine ale_manager::set_coef_restart ( class(ale_manager_t), intent(inout this,
type(coef_t), intent(inout coef,
class(advection_t), intent(inout adv,
real(kind=dp), intent(in time_restart 
)
private

Definition at line 1333 of file ale_manager.f90.

◆ set_pivot_basis_for_checkpoint()

subroutine ale_manager::set_pivot_basis_for_checkpoint ( class(ale_manager_t), intent(inout this,
integer, intent(in body_idx 
)
private

Definition at line 1347 of file ale_manager.f90.

◆ set_pivot_restart()

subroutine ale_manager::set_pivot_restart ( class(ale_manager_t), intent(inout this,
real(kind=dp), intent(in time_restart 
)
private

Definition at line 1270 of file ale_manager.f90.

Here is the call graph for this function:

◆ solve_base_mesh_displacement()

subroutine ale_manager::solve_base_mesh_displacement ( class(ale_manager_t), intent(inout this,
type(coef_t), intent(inout coef,
real(kind=rp), intent(in abstol,
character(len=*), intent(in ksp_solver,
integer, intent(in ksp_max_iter,
character(len=*), intent(in precon_type,
type(json_file), intent(inout precon_params,
logical, intent(in res_monitor 
)
private

Definition at line 804 of file ale_manager.f90.

Here is the call graph for this function:

◆ update_ale_mesh()

subroutine, public ale_manager::update_ale_mesh ( type(coef_t), intent(inout c_xh,
type(field_t), intent(in wm_x,
type(field_t), intent(in wm_y,
type(field_t), intent(in wm_z,
type(field_series_t), intent(in wm_x_lag,
type(field_series_t), intent(in wm_y_lag,
type(field_series_t), intent(in wm_z_lag,
type(time_state_t), intent(in time,
integer, intent(in nadv,
character(len=*), intent(in scheme_ 
)

Definition at line 1183 of file ale_manager.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_mesh_velocity()

subroutine ale_manager::update_mesh_velocity ( class(ale_manager_t), intent(inout this,
type(coef_t), intent(in coef,
type(time_state_t), intent(in time_s 
)
private

Definition at line 1046 of file ale_manager.f90.

Here is the call graph for this function:

Variable Documentation

◆ neko_ale

type(ale_manager_t), pointer, public ale_manager::neko_ale => null()

Definition at line 162 of file ale_manager.f90.