Neko 1.99.9
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, chkp)
 Initialize ALE Manager Sets up solver, registers fields, solves for base shape, etc.
 
subroutine solve_base_mesh_displacement (this, coef, json, import_base_shapes, 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.
 
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 sync_chkp (this, coef, xh, adv, chkp, gs_xh)
 
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 sync_mesh_preview_step (coef, dummy_field)
 
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, import_base_shapes)
 
subroutine register_checkpoint_fields (this, coef, checkpoint)
 

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 1435 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 1235 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 1474 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), target  coef,
type(json_file), intent(inout)  json,
type(user_t), intent(in)  user,
type(chkp_t), intent(inout)  chkp 
)
private

Definition at line 181 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 1515 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 1760 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 2002 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 1276 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,
logical, intent(out)  import_base_shapes 
)
private

Definition at line 2199 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 1988 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 2153 of file ale_manager.f90.

◆ 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 2102 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 2047 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 1782 of file ale_manager.f90.

Here is the call graph for this function:

◆ register_checkpoint_fields()

subroutine ale_manager::register_checkpoint_fields ( class(ale_manager_t), intent(inout), target  this,
type(coef_t), intent(inout), target  coef,
type(chkp_t), intent(inout)  checkpoint 
)
private

Definition at line 2260 of file ale_manager.f90.

◆ 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 1960 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 1726 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 1541 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), target  this,
type(coef_t), intent(inout)  coef,
type(json_file), intent(inout)  json,
logical, intent(in)  import_base_shapes,
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 843 of file ale_manager.f90.

Here is the call graph for this function:

◆ sync_chkp()

subroutine ale_manager::sync_chkp ( class(ale_manager_t), intent(inout)  this,
type(coef_t), intent(inout)  coef,
type(space_t), intent(inout)  xh,
class(advection_t), intent(inout)  adv,
type(chkp_t), intent(in)  chkp,
type(gs_t), intent(inout)  gs_xh 
)
private

Definition at line 1605 of file ale_manager.f90.

◆ sync_mesh_preview_step()

subroutine ale_manager::sync_mesh_preview_step ( type(coef_t), intent(inout)  coef,
type(field_t), intent(inout)  dummy_field 
)
private

Definition at line 1932 of file ale_manager.f90.

Here is the caller 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 1456 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 1167 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 175 of file ale_manager.f90.