|
Neko 1.99.5
A portable framework for high-order spectral element flow simulations
|
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. 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 | 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() |
| 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 1442 of file ale_manager.f90.


|
private |
|
private |
Definition at line 1481 of file ale_manager.f90.
|
private |
|
private |
Definition at line 2018 of file ale_manager.f90.
| subroutine, public ale_manager::compute_stiffness_ale | ( | type(coef_t), intent(inout) | coef, |
| type(ale_config_t), intent(in) | params | ||
| ) |
Definition at line 1283 of file ale_manager.f90.


|
private |
|
private |
Definition at line 2004 of file ale_manager.f90.
|
private |
Definition at line 2169 of file ale_manager.f90.
| 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 2118 of file ale_manager.f90.
| 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 2063 of file ale_manager.f90.
|
private |
|
private |
Definition at line 2274 of file ale_manager.f90.
|
private |
Definition at line 1976 of file ale_manager.f90.
|
private |
Definition at line 1742 of file ale_manager.f90.
|
private |
|
private |
|
private |
Definition at line 1612 of file ale_manager.f90.
| 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 1463 of file ale_manager.f90.


|
private |
| type(ale_manager_t), pointer, public ale_manager::neko_ale => null() |
Definition at line 172 of file ale_manager.f90.