Neko 1.99.9
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
ale_manager::ale_manager_t Type Reference
Collaboration diagram for ale_manager::ale_manager_t:

Public Member Functions

procedure, pass(this) init (this, coef, json, user, chkp)
 Initialize ALE Manager Sets up solver, registers fields, solves for base shape, etc.
 
procedure, pass(this) free (this)
 
procedure, pass(this) mesh_preview (this, coef, json)
 Performs a preview of the mesh motion to verify quality/topology.
 
procedure, pass(this) 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.
 
procedure, pass(this) advance_mesh (this, coef, time, nadv)
 Main routine to advance the mesh in time.
 
procedure, pass(this) 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 )
 
procedure, pass(this) set_pivot_restart (this, time_restart)
 
procedure, pass(this) sync_chkp (this, coef, xh, adv, chkp, gs_xh)
 
procedure, pass(this) request_tracker (this, initial_pos, body_id)
 
procedure, pass(this) get_tracker_pos (this, handle)
 
procedure, pass(this) compute_rotation_matrix (this, body_idx, time)
 Computes Rotation Matrix.
 
procedure, pass(this) prep_checkpoint (this, body_idx)
 
procedure, pass(this) ghost_tracker_coord_step (this, kin_object, time_s, nadv, body_idx)
 
procedure, pass(this) 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)
 
procedure, pass(this) 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)
 
procedure, pass(this) register_checkpoint_fields (this, coef, checkpoint)
 

Public Attributes

logical active = .false.
 
logical has_moving_boundary = .false.
 
type(bc_list_t) bc_list
 
type(zero_dirichlet_t) bc_moving
 
type(zero_dirichlet_t) bc_fixed
 
type(ale_config_t) config
 
type(field_t), pointer wm_x => null()
 Mesh velocity fields (Registered in neko_registry)
 
type(field_t), pointer wm_y => null()
 
type(field_t), pointer wm_z => null()
 
type(field_series_t) wm_x_lag
 History buffers for mesh velocity components.
 
type(field_series_t) wm_y_lag
 
type(field_series_t) wm_z_lag
 
type(field_t) x_ref
 Reference initial grid to calculate the rotation accurately.
 
type(field_t) y_ref
 
type(field_t) z_ref
 
type(pivot_state_t), dimension(:), allocatable ale_pivot
 Pivot states for each body.
 
type(body_kinematics_t), dimension(:), allocatable body_kin
 
type(field_t), dimension(:), allocatable base_shapes
 Base shape fields for mesh movement (Laplace solution for each body) base_shapes(i) is 1.0 on body i and 0.0 on all others.
 
type(field_t) phi_total
 Sum of all base shapes. Should be \( \in [0, 1] \).
 
real(kind=rp), dimension(:), pointer global_pivot_pos => null()
 
real(kind=rp), dimension(:, :), pointer global_pivot_vel_lag => null()
 
real(kind=rp), dimension(:), pointer global_basis_pos => null()
 
real(kind=rp), dimension(:, :), pointer global_basis_vel_lag => null()
 
integer, dimension(:,:), allocatable ghost_handles
 
real(kind=rp), dimension(:,:,:), allocatable body_rot_matrices
 
type(point_tracker_t), dimension(:), allocatable trackers
 
integer n_trackers = 0
 

Static Public Attributes

procedure(user_ale_mesh_velocity_intf), pointer, nopass user_ale_mesh_vel => null()
 
procedure(user_ale_base_shapes_intf), pointer, nopass user_ale_base_shapes => null()
 
procedure(user_ale_rigid_kinematics_intf), pointer, nopass user_ale_rigid_kinematics => null()
 

Detailed Description

Definition at line 99 of file ale_manager.f90.

Member Function/Subroutine Documentation

◆ advance_mesh()

procedure, pass(this) ale_manager::ale_manager_t::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 
)

Definition at line 161 of file ale_manager.f90.

◆ compute_rotation_matrix()

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

Definition at line 167 of file ale_manager.f90.

◆ free()

procedure, pass(this) ale_manager::ale_manager_t::free ( class(ale_manager_t), intent(inout), target  this)

Definition at line 158 of file ale_manager.f90.

◆ get_tracker_pos()

procedure, pass(this) ale_manager::ale_manager_t::get_tracker_pos ( class(ale_manager_t), intent(in)  this,
integer, intent(in)  handle 
)

Definition at line 166 of file ale_manager.f90.

◆ ghost_tracker_coord_step()

procedure, pass(this) ale_manager::ale_manager_t::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 
)

Definition at line 169 of file ale_manager.f90.

◆ init()

procedure, pass(this) ale_manager::ale_manager_t::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 
)

Definition at line 157 of file ale_manager.f90.

◆ log_pivot()

procedure, pass(this) ale_manager::ale_manager_t::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 171 of file ale_manager.f90.

◆ log_rot_angles()

procedure, pass(this) ale_manager::ale_manager_t::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 170 of file ale_manager.f90.

◆ mesh_preview()

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

Definition at line 159 of file ale_manager.f90.

◆ prep_checkpoint()

procedure, pass(this) ale_manager::ale_manager_t::prep_checkpoint ( class(ale_manager_t), intent(inout)  this,
integer, intent(in)  body_idx 
)

Definition at line 168 of file ale_manager.f90.

◆ register_checkpoint_fields()

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

Definition at line 172 of file ale_manager.f90.

◆ request_tracker()

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

Definition at line 165 of file ale_manager.f90.

◆ set_pivot_restart()

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

Definition at line 163 of file ale_manager.f90.

◆ solve_base_mesh_displacement()

procedure, pass(this) ale_manager::ale_manager_t::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 
)

Definition at line 160 of file ale_manager.f90.

◆ sync_chkp()

procedure, pass(this) ale_manager::ale_manager_t::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 
)

Definition at line 164 of file ale_manager.f90.

◆ update_mesh_velocity()

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

Definition at line 162 of file ale_manager.f90.

Member Data Documentation

◆ active

logical ale_manager::ale_manager_t::active = .false.

Definition at line 101 of file ale_manager.f90.

◆ ale_pivot

type(pivot_state_t), dimension(:), allocatable ale_manager::ale_manager_t::ale_pivot

Definition at line 124 of file ale_manager.f90.

◆ base_shapes

type(field_t), dimension(:), allocatable ale_manager::ale_manager_t::base_shapes

Definition at line 129 of file ale_manager.f90.

◆ bc_fixed

type(zero_dirichlet_t) ale_manager::ale_manager_t::bc_fixed

Definition at line 106 of file ale_manager.f90.

◆ bc_list

type(bc_list_t) ale_manager::ale_manager_t::bc_list

Definition at line 104 of file ale_manager.f90.

◆ bc_moving

type(zero_dirichlet_t) ale_manager::ale_manager_t::bc_moving

Definition at line 105 of file ale_manager.f90.

◆ body_kin

type(body_kinematics_t), dimension(:), allocatable ale_manager::ale_manager_t::body_kin

Definition at line 125 of file ale_manager.f90.

◆ body_rot_matrices

real(kind=rp), dimension(:,:,:), allocatable ale_manager::ale_manager_t::body_rot_matrices

Definition at line 144 of file ale_manager.f90.

◆ config

type(ale_config_t) ale_manager::ale_manager_t::config

Definition at line 108 of file ale_manager.f90.

◆ ghost_handles

integer, dimension(:,:), allocatable ale_manager::ale_manager_t::ghost_handles

Definition at line 142 of file ale_manager.f90.

◆ global_basis_pos

real(kind=rp), dimension(:), pointer ale_manager::ale_manager_t::global_basis_pos => null()

Definition at line 138 of file ale_manager.f90.

◆ global_basis_vel_lag

real(kind=rp), dimension(:, :), pointer ale_manager::ale_manager_t::global_basis_vel_lag => null()

Definition at line 140 of file ale_manager.f90.

◆ global_pivot_pos

real(kind=rp), dimension(:), pointer ale_manager::ale_manager_t::global_pivot_pos => null()

Definition at line 134 of file ale_manager.f90.

◆ global_pivot_vel_lag

real(kind=rp), dimension(:, :), pointer ale_manager::ale_manager_t::global_pivot_vel_lag => null()

Definition at line 135 of file ale_manager.f90.

◆ has_moving_boundary

logical ale_manager::ale_manager_t::has_moving_boundary = .false.

Definition at line 102 of file ale_manager.f90.

◆ n_trackers

integer ale_manager::ale_manager_t::n_trackers = 0

Definition at line 147 of file ale_manager.f90.

◆ phi_total

type(field_t) ale_manager::ale_manager_t::phi_total

Definition at line 132 of file ale_manager.f90.

◆ trackers

type(point_tracker_t), dimension(:), allocatable ale_manager::ale_manager_t::trackers

Definition at line 146 of file ale_manager.f90.

◆ user_ale_base_shapes

procedure(user_ale_base_shapes_intf), pointer, nopass ale_manager::ale_manager_t::user_ale_base_shapes => null()
static

Definition at line 151 of file ale_manager.f90.

◆ user_ale_mesh_vel

procedure(user_ale_mesh_velocity_intf), pointer, nopass ale_manager::ale_manager_t::user_ale_mesh_vel => null()
static

Definition at line 149 of file ale_manager.f90.

◆ user_ale_rigid_kinematics

procedure(user_ale_rigid_kinematics_intf), pointer, nopass ale_manager::ale_manager_t::user_ale_rigid_kinematics => null()
static

Definition at line 153 of file ale_manager.f90.

◆ wm_x

type(field_t), pointer ale_manager::ale_manager_t::wm_x => null()

Definition at line 111 of file ale_manager.f90.

◆ wm_x_lag

type(field_series_t) ale_manager::ale_manager_t::wm_x_lag

Definition at line 116 of file ale_manager.f90.

◆ wm_y

type(field_t), pointer ale_manager::ale_manager_t::wm_y => null()

Definition at line 112 of file ale_manager.f90.

◆ wm_y_lag

type(field_series_t) ale_manager::ale_manager_t::wm_y_lag

Definition at line 117 of file ale_manager.f90.

◆ wm_z

type(field_t), pointer ale_manager::ale_manager_t::wm_z => null()

Definition at line 113 of file ale_manager.f90.

◆ wm_z_lag

type(field_series_t) ale_manager::ale_manager_t::wm_z_lag

Definition at line 118 of file ale_manager.f90.

◆ x_ref

type(field_t) ale_manager::ale_manager_t::x_ref

Definition at line 121 of file ale_manager.f90.

◆ y_ref

type(field_t) ale_manager::ale_manager_t::y_ref

Definition at line 121 of file ale_manager.f90.

◆ z_ref

type(field_t) ale_manager::ale_manager_t::z_ref

Definition at line 121 of file ale_manager.f90.


The documentation for this type was generated from the following file: