|
Neko 1.99.3
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) |
| 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() |
| 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.


|
private |
|
private |
Definition at line 1201 of file ale_manager.f90.
|
private |
|
private |
Definition at line 1603 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 1151 of file ale_manager.f90.


|
private |
|
private |
Definition at line 1589 of file ale_manager.f90.
|
private |
| 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.
| 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.
|
private |
|
private |
Definition at line 1561 of file ale_manager.f90.
|
private |
Definition at line 1333 of file ale_manager.f90.
|
private |
Definition at line 1347 of file ale_manager.f90.
|
private |
|
private |
| 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.


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