Neko 1.99.3
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(thisinit (this, coef, json, user)
 Initialize ALE Manager Sets up solver, registers fields, solves for base shape, etc.
 
procedure, pass(thisfree (this)
 
procedure, pass(thismesh_preview (this, coef, json)
 Performs a preview of the mesh motion to verify quality/topology.
 
procedure, pass(thissolve_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)
 
procedure, pass(thisadvance_mesh (this, coef, time, nadv)
 Main routine to advance the mesh in time.
 
procedure, pass(thisupdate_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(thisset_pivot_restart (this, time_restart)
 
procedure, pass(thisset_coef_restart (this, coef, adv, time_restart)
 
procedure, pass(thisrequest_tracker (this, initial_pos, body_id)
 
procedure, pass(thisget_tracker_pos (this, handle)
 
procedure, pass(thiscompute_rotation_matrix (this, body_idx, time)
 Computes Rotation Matrix.
 
procedure, pass(thisprep_checkpoint (this, body_idx)
 
procedure, pass(thisghost_tracker_coord_step (this, kin_object, time_s, nadv, body_idx)
 
procedure, pass(thislog_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(thislog_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)
 

Public Attributes

logical active = .false.
 
logical has_moving_boundary = .false.
 
type(bc_list_tbc_list
 
type(zero_dirichlet_tbc_moving
 
type(zero_dirichlet_tbc_fixed
 
type(ale_config_tconfig
 
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_twm_x_lag
 History buffers for mesh velocity components.
 
type(field_series_twm_y_lag
 
type(field_series_twm_z_lag
 
type(field_tx_ref
 Reference initial grid to calculate the rotation accurately.
 
type(field_ty_ref
 
type(field_tz_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_tphi_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 87 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 149 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 155 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 146 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 154 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 157 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 coef,
type(json_file), intent(inout json,
type(user_t), intent(in user 
)

Definition at line 145 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 159 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 158 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 147 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 156 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 153 of file ale_manager.f90.

◆ set_coef_restart()

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

Definition at line 152 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 151 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 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 
)

Definition at line 148 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 150 of file ale_manager.f90.

Member Data Documentation

◆ active

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

Definition at line 89 of file ale_manager.f90.

◆ ale_pivot

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

Definition at line 112 of file ale_manager.f90.

◆ base_shapes

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

Definition at line 117 of file ale_manager.f90.

◆ bc_fixed

type(zero_dirichlet_t) ale_manager::ale_manager_t::bc_fixed

Definition at line 94 of file ale_manager.f90.

◆ bc_list

type(bc_list_t) ale_manager::ale_manager_t::bc_list

Definition at line 92 of file ale_manager.f90.

◆ bc_moving

type(zero_dirichlet_t) ale_manager::ale_manager_t::bc_moving

Definition at line 93 of file ale_manager.f90.

◆ body_kin

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

Definition at line 113 of file ale_manager.f90.

◆ body_rot_matrices

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

Definition at line 132 of file ale_manager.f90.

◆ config

type(ale_config_t) ale_manager::ale_manager_t::config

Definition at line 96 of file ale_manager.f90.

◆ ghost_handles

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

Definition at line 130 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 126 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 128 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 122 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 123 of file ale_manager.f90.

◆ has_moving_boundary

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

Definition at line 90 of file ale_manager.f90.

◆ n_trackers

integer ale_manager::ale_manager_t::n_trackers = 0

Definition at line 135 of file ale_manager.f90.

◆ phi_total

type(field_t) ale_manager::ale_manager_t::phi_total

Definition at line 120 of file ale_manager.f90.

◆ trackers

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

Definition at line 134 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 139 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 137 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 141 of file ale_manager.f90.

◆ wm_x

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

Definition at line 99 of file ale_manager.f90.

◆ wm_x_lag

type(field_series_t) ale_manager::ale_manager_t::wm_x_lag

Definition at line 104 of file ale_manager.f90.

◆ wm_y

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

Definition at line 100 of file ale_manager.f90.

◆ wm_y_lag

type(field_series_t) ale_manager::ale_manager_t::wm_y_lag

Definition at line 105 of file ale_manager.f90.

◆ wm_z

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

Definition at line 101 of file ale_manager.f90.

◆ wm_z_lag

type(field_series_t) ale_manager::ale_manager_t::wm_z_lag

Definition at line 106 of file ale_manager.f90.

◆ x_ref

type(field_t) ale_manager::ale_manager_t::x_ref

Definition at line 109 of file ale_manager.f90.

◆ y_ref

type(field_t) ale_manager::ale_manager_t::y_ref

Definition at line 109 of file ale_manager.f90.

◆ z_ref

type(field_t) ale_manager::ale_manager_t::z_ref

Definition at line 109 of file ale_manager.f90.


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