Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 117 additions & 0 deletions cyprecice/__init__.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
from typing import Any, Optional
import numpy as np
from numpy.typing import ArrayLike

def check_array_like(
argument: object, argument_name: str, function_name: str
) -> None: ...

class Participant:
def __init__(
self,
solver_name: str,
configuration_file_name: str,
solver_process_index: int,
solver_process_size: int,
communicator: Optional[Any] = None,
) -> None: ...

# Steering
def initialize(self) -> None: ...
def advance(self, computed_timestep_length: float) -> None: ...
def finalize(self) -> None: ...

# Status queries
def get_mesh_dimensions(self, mesh_name: str) -> int: ...
def get_data_dimensions(self, mesh_name: str, data_name: str) -> int: ...
def is_coupling_ongoing(self) -> bool: ...
def is_time_window_complete(self) -> bool: ...
def get_max_time_step_size(self) -> float: ...
def requires_initial_data(self) -> bool: ...
def requires_writing_checkpoint(self) -> bool: ...
def requires_reading_checkpoint(self) -> bool: ...

# Mesh access
def requires_mesh_connectivity_for(self, mesh_name: str) -> bool: ...
def set_mesh_vertex(self, mesh_name: str, position: ArrayLike) -> int: ...
def get_mesh_vertex_size(self, mesh_name: str) -> int: ...
def set_mesh_vertices(self, mesh_name: str, positions: ArrayLike) -> np.ndarray: ...
def set_mesh_edge(
self, mesh_name: str, first_vertex_id: int, second_vertex_id: int
) -> None: ...
def set_mesh_edges(self, mesh_name: str, vertices: ArrayLike) -> None: ...
def set_mesh_triangle(
self,
mesh_name: str,
first_vertex_id: int,
second_vertex_id: int,
third_vertex_id: int,
) -> None: ...
def set_mesh_triangles(self, mesh_name: str, vertices: ArrayLike) -> None: ...
def set_mesh_quad(
self,
mesh_name: str,
first_vertex_id: int,
second_vertex_id: int,
third_vertex_id: int,
fourth_vertex_id: int,
) -> None: ...
def set_mesh_quads(self, mesh_name: str, vertices: ArrayLike) -> None: ...
def set_mesh_tetrahedron(
self,
mesh_name: str,
first_vertex_id: int,
second_vertex_id: int,
third_vertex_id: int,
fourth_vertex_id: int,
) -> None: ...
def set_mesh_tetrahedra(self, mesh_name: str, vertices: ArrayLike) -> None: ...

# Remeshing
def reset_mesh(self, mesh_name: str) -> None: ...

# Data access
def write_data(
self, mesh_name: str, data_name: str, vertex_ids: ArrayLike, values: ArrayLike
) -> None: ...
def read_data(
self,
mesh_name: str,
data_name: str,
vertex_ids: ArrayLike,
relative_read_time: float,
) -> np.ndarray: ...
def write_and_map_data(
self, mesh_name: str, data_name: str, coordinates: ArrayLike, values: ArrayLike
) -> None: ...
def map_and_read_data(
self,
mesh_name: str,
data_name: str,
coordinates: ArrayLike,
relative_read_time: float,
) -> np.ndarray: ...

# Gradient data
def write_gradient_data(
self,
mesh_name: str,
data_name: str,
vertex_ids: ArrayLike,
gradients: ArrayLike,
) -> None: ...
def requires_gradient_data_for(self, mesh_name: str, data_name: str) -> bool: ...

# Direct access
def set_mesh_access_region(
self, mesh_name: str, bounding_box: ArrayLike
) -> None: ...
def get_mesh_vertex_ids_and_coordinates(
self, mesh_name: str
) -> tuple[np.ndarray, np.ndarray]: ...

# Profiling
def start_profiling_section(self, event_name: str) -> None: ...
def stop_last_profiling_section(self) -> None: ...

def get_version_information() -> bytes: ...
117 changes: 117 additions & 0 deletions cyprecice/cyprecice.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
from typing import Any, Optional
import numpy as np
from numpy.typing import ArrayLike

def check_array_like(
argument: object, argument_name: str, function_name: str
) -> None: ...

class Participant:
def __init__(
self,
solver_name: str,
configuration_file_name: str,
solver_process_index: int,
solver_process_size: int,
communicator: Optional[Any] = None,
) -> None: ...

# Steering
def initialize(self) -> None: ...
def advance(self, computed_timestep_length: float) -> None: ...
def finalize(self) -> None: ...

# Status queries
def get_mesh_dimensions(self, mesh_name: str) -> int: ...
def get_data_dimensions(self, mesh_name: str, data_name: str) -> int: ...
def is_coupling_ongoing(self) -> bool: ...
def is_time_window_complete(self) -> bool: ...
def get_max_time_step_size(self) -> float: ...
def requires_initial_data(self) -> bool: ...
def requires_writing_checkpoint(self) -> bool: ...
def requires_reading_checkpoint(self) -> bool: ...

# Mesh access
def requires_mesh_connectivity_for(self, mesh_name: str) -> bool: ...
def set_mesh_vertex(self, mesh_name: str, position: ArrayLike) -> int: ...
def get_mesh_vertex_size(self, mesh_name: str) -> int: ...
def set_mesh_vertices(self, mesh_name: str, positions: ArrayLike) -> np.ndarray: ...
def set_mesh_edge(
self, mesh_name: str, first_vertex_id: int, second_vertex_id: int
) -> None: ...
def set_mesh_edges(self, mesh_name: str, vertices: ArrayLike) -> None: ...
def set_mesh_triangle(
self,
mesh_name: str,
first_vertex_id: int,
second_vertex_id: int,
third_vertex_id: int,
) -> None: ...
def set_mesh_triangles(self, mesh_name: str, vertices: ArrayLike) -> None: ...
def set_mesh_quad(
self,
mesh_name: str,
first_vertex_id: int,
second_vertex_id: int,
third_vertex_id: int,
fourth_vertex_id: int,
) -> None: ...
def set_mesh_quads(self, mesh_name: str, vertices: ArrayLike) -> None: ...
def set_mesh_tetrahedron(
self,
mesh_name: str,
first_vertex_id: int,
second_vertex_id: int,
third_vertex_id: int,
fourth_vertex_id: int,
) -> None: ...
def set_mesh_tetrahedra(self, mesh_name: str, vertices: ArrayLike) -> None: ...

# Remeshing
def reset_mesh(self, mesh_name: str) -> None: ...

# Data access
def write_data(
self, mesh_name: str, data_name: str, vertex_ids: ArrayLike, values: ArrayLike
) -> None: ...
def read_data(
self,
mesh_name: str,
data_name: str,
vertex_ids: ArrayLike,
relative_read_time: float,
) -> np.ndarray: ...
def write_and_map_data(
self, mesh_name: str, data_name: str, coordinates: ArrayLike, values: ArrayLike
) -> None: ...
def map_and_read_data(
self,
mesh_name: str,
data_name: str,
coordinates: ArrayLike,
relative_read_time: float,
) -> np.ndarray: ...

# Gradient data
def write_gradient_data(
self,
mesh_name: str,
data_name: str,
vertex_ids: ArrayLike,
gradients: ArrayLike,
) -> None: ...
def requires_gradient_data_for(self, mesh_name: str, data_name: str) -> bool: ...

# Direct access
def set_mesh_access_region(
self, mesh_name: str, bounding_box: ArrayLike
) -> None: ...
def get_mesh_vertex_ids_and_coordinates(
self, mesh_name: str
) -> tuple[np.ndarray, np.ndarray]: ...

# Profiling
def start_profiling_section(self, event_name: str) -> None: ...
def stop_last_profiling_section(self) -> None: ...

def get_version_information() -> bytes: ...
Empty file added cyprecice/py.typed
Empty file.
6 changes: 6 additions & 0 deletions mypy.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[mypy]
python_version = 3.9
warn_return_any = true
warn_unused_configs = true
mypy_path = .
ignore_missing_imports = true