// Copyright 2025, ANSYS Inc. Unauthorized use, distribution or duplication is prohibited.
syntax = "proto3";
package ansys.api.discovery.v0.conditions.rotatingfluidzone;

import "ansys/api/dbu/v0/dbumodels.proto";
import "ansys/api/discovery/v0/discoverymodels.proto";

option csharp_namespace = "Ansys.Api.Discovery.V0.Conditions";

service RotatingFluidZone
{
  //creation methods
  rpc CreateRotatingFluidZone(RotatingFluidZoneCreationRequest) returns (RotatingFluidZoneCreationResponse);  

  
  // properties commands
  rpc ChangeRotatingFluidZoneLocation(ChangeLocationRequest) returns (ChangeResponse);


  // Motion quantities
  rpc ChangeWallRotationalVelocityMagnitude(ChangeQuantityRequest) returns (ChangeResponse);

  
}

// Command Requests and Responses

// Create RFZ
message RotatingFluidZoneCreationRequest{
  ScopedCreationData creation_data = 2;
  RotatingFluidZoneProperties rotating_fluid_zone_properties = 4;
}

message RotatingFluidZoneCreationResponse{
  CreationResponse condition_response = 1;
  RotatingFluidZoneDefinition condition_data = 2;
}


// RFZ conditions properties

message RotatingFluidZoneProperties
{
  Quantity rotational_velocity = 1;
}


// Fluid conditions definitions

message RotatingFluidZoneDefinition {
  ansys.api.dbu.v0.PhysicsEntityIdentifier id = 1;
  ansys.api.dbu.v0.PhysicsEntityIdentifier parent_id = 2;
  string label = 3;
  repeated string locations = 4;
  bool suppressed = 5;
  RotatingFluidZoneProperties rotating_fluid_zone_properties = 6;
}