generate_vtk_output.VTKOutput Class Reference

Kynema API: generate_vtk_output.VTKOutput Class Reference
Kynema API
A flexible multibody structural dynamics code for wind turbines
Loading...
Searching...
No Matches
generate_vtk_output.VTKOutput Class Reference

Public Member Functions

 __init__ (self, str netcdf_path, str connectivity_path)
 
 generate_visualization (self, int timestep, str output_dir)
 
 visualize_all_timesteps (self, str output_dir)
 

Public Attributes

 netcdf_path
 
 data
 
 mesh_connectivity
 
 num_nodes
 
 num_timesteps
 

Protected Member Functions

 _load_mesh_connectivity (self, str connectivity_path)
 
List[Dict[str, List[float]]] _extract_node_data_at_timestep (self, int timestep, Optional[List[int]] node_indices=None)
 
 _add_node_data_to_vtk_object (self, vtk.vtkObject vtk_object, List[Dict[str, List[float]]] nodes)
 
 _add_beams_to_grid (self, grid, cell_types, element_ids, element_type_names)
 
 _add_masses_to_grid (self, grid, cell_types, element_ids, element_type_names)
 
 _add_springs_to_grid (self, grid, cell_types, element_ids, element_type_names)
 
 _add_constraints_to_grid (self, grid, cell_types, element_ids, element_type_names)
 

Detailed Description

Class to generate VTK files from Kynema (NetCDF-based) outputs and mesh connectivity (YAML-based).

Constructor & Destructor Documentation

◆ __init__()

generate_vtk_output.VTKOutput.__init__ (   self,
str  netcdf_path,
str  connectivity_path 
)
Initializes the visualizer with the path to the NetCDF file and mesh connectivity file.

Args:
    netcdf_path (str): Path to the NetCDF output file
    connectivity_path (str): Path to the mesh connectivity YAML file

Member Function Documentation

◆ _add_beams_to_grid()

generate_vtk_output.VTKOutput._add_beams_to_grid (   self,
  grid,
  cell_types,
  element_ids,
  element_type_names 
)
protected
Adds beam elements to the unstructured grid. Represented as polyline cells.

Args:
    grid (vtk.vtkUnstructuredGrid): Grid to add beams to
    cell_types (Dict[int, int]): Dictionary to track cell types
    element_ids (Dict[int, int]): Dictionary to track original element IDs
    element_type_names (Dict[int, str]): Dictionary to track element type names

◆ _add_constraints_to_grid()

generate_vtk_output.VTKOutput._add_constraints_to_grid (   self,
  grid,
  cell_types,
  element_ids,
  element_type_names 
)
protected
Adds constraint elements to the unstructured grid. Represented as line cells.

Args:
    grid (vtk.vtkUnstructuredGrid): Grid to add constraints to
    cell_types (Dict[int, int]): Dictionary to track cell types
    element_ids (Dict[int, int]): Dictionary to track original element IDs
    element_type_names (Dict[int, str]): Dictionary to track element type names

◆ _add_masses_to_grid()

generate_vtk_output.VTKOutput._add_masses_to_grid (   self,
  grid,
  cell_types,
  element_ids,
  element_type_names 
)
protected
Adds mass elements to the unstructured grid. Represented as vertices.

Args:
    grid (vtk.vtkUnstructuredGrid): Grid to add masses to
    cell_types (Dict[int, int]): Dictionary to track cell types
    element_ids (Dict[int, int]): Dictionary to track original element IDs
    element_type_names (Dict[int, str]): Dictionary to track element type names

◆ _add_node_data_to_vtk_object()

generate_vtk_output.VTKOutput._add_node_data_to_vtk_object (   self,
vtk.vtkObject  vtk_object,
List[Dict[str, List[float]]]   nodes 
)
protected
Adds common node data to a VTK object (polydata or unstructured grid).

Following data are added to the VTK object:
- Orientation (as 3x3 rotation matrix)
- Velocity (as 6x1 vector)
- Acceleration (as 6x1 vector)

Args:
    vtk_object: VTK object to add data to
    nodes: List of node data dictionaries

◆ _add_springs_to_grid()

generate_vtk_output.VTKOutput._add_springs_to_grid (   self,
  grid,
  cell_types,
  element_ids,
  element_type_names 
)
protected
Adds spring elements to the unstructured grid. Represented as line cells.

Args:
    grid (vtk.vtkUnstructuredGrid): Grid to add springs to
    cell_types (Dict[int, int]): Dictionary to track cell types
    element_ids (Dict[int, int]): Dictionary to track original element IDs
    element_type_names (Dict[int, str]): Dictionary to track element type names

◆ _extract_node_data_at_timestep()

List[Dict[str, List[float]]] generate_vtk_output.VTKOutput._extract_node_data_at_timestep (   self,
int  timestep,
Optional[List[int]]   node_indices = None 
)
protected
Extracts node data for a specific timestep and returns a list of Kynema's NodeData-like structures.

Node data contains the following components:
- Position: x_x, x_y, x_z, x_w, x_i, x_j, x_k
- Velocity: v_x, v_y, v_z, v_i, v_j, v_k
- Acceleration: a_x, a_y, a_z, a_i, a_j, a_k
- Force (if available): f_x, f_y, f_z
- Moment (if available): f_i, f_j, f_k
- Deformation (if available): deformation_x, deformation_y, deformation_z

Args:
    timestep (int): The timestep to extract node data from
    node_indices (Optional[List[int]]):
        If provided, only extract data for these specific node indices.
        If None, extract data for all nodes.

Returns:
    list[dict]: A list of NodeData-like structures (dicts)

◆ _load_mesh_connectivity()

generate_vtk_output.VTKOutput._load_mesh_connectivity (   self,
str  connectivity_path 
)
protected
Loads mesh connectivity information from a YAML file.

Args:
    connectivity_path (str): Path to the connectivity YAML file

◆ generate_visualization()

generate_vtk_output.VTKOutput.generate_visualization (   self,
int  timestep,
str  output_dir 
)
Generates visualization for the specified timestep based on mesh connectivity.

This method automatically determines what elements to create based on the
available connectivity data.

Args:
    timestep (int): Timestep to visualize
    output_dir (str): Directory to save the output files

◆ visualize_all_timesteps()

generate_vtk_output.VTKOutput.visualize_all_timesteps (   self,
str  output_dir 
)
Generates visualization for all timesteps.

Args:
    output_dir (str): Directory to save the output files

Member Data Documentation

◆ data

generate_vtk_output.VTKOutput.data

◆ mesh_connectivity

generate_vtk_output.VTKOutput.mesh_connectivity

◆ netcdf_path

generate_vtk_output.VTKOutput.netcdf_path

◆ num_nodes

generate_vtk_output.VTKOutput.num_nodes

◆ num_timesteps

generate_vtk_output.VTKOutput.num_timesteps

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