// Proto file representing raptorx simulation setup settings

syntax = "proto3";

package ansys.api.edb.v1;

import "ansys/api/edb/v1/edb_messages.proto";

service RaptorXGeneralSettingsService {
  rpc GetUseGoldEMSolver(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetUseGoldEMSolver(BoolPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetMaxFrequency(EDBObjMessage) returns (google.protobuf.StringValue) {}
  rpc SetMaxFrequency(StringPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetGlobalTemperature(EDBObjMessage) returns (google.protobuf.DoubleValue) {}
  rpc SetGlobalTemperature(DoublePropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetSaveNetlist(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetSaveNetlist(BoolPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetNetlistExportSpectre(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetNetlistExportSpectre(BoolPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetSaveRFM(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetSaveRFM(BoolPropertyMessage) returns (google.protobuf.Empty) {}
}

service RaptorXAdvancedSettingsService {
  rpc GetUseMeshFrequency(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetUseMeshFrequency(BoolPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetMeshFrequency(EDBObjMessage) returns (google.protobuf.StringValue) {}
  rpc SetMeshFrequency(StringPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetUseEdgeMesh(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetUseEdgeMesh(BoolPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetEdgeMesh(EDBObjMessage) returns (google.protobuf.StringValue) {}
  rpc SetEdgeMesh(StringPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetUseCellsPerWavelength(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetUseCellsPerWavelength(BoolPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetCellsPerWavelength(EDBObjMessage) returns (google.protobuf.UInt64Value) {}
  rpc SetCellsPerWavelength(UInt64PropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetUsePlaneProjectionFactor(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetUsePlaneProjectionFactor(BoolPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetPlaneProjectionFactor(EDBObjMessage) returns (google.protobuf.DoubleValue) {}
  rpc SetPlaneProjectionFactor(DoublePropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetUseRelaxedZAxis(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetUseRelaxedZAxis(BoolPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetUseEliminateSlitPerHoles(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetUseEliminateSlitPerHoles(BoolPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetEliminateSlitPerHoles(EDBObjMessage) returns (google.protobuf.DoubleValue) {}
  rpc SetEliminateSlitPerHoles(DoublePropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetUseAutoRemovalSliverPoly(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetUseAutoRemovalSliverPoly(BoolPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetAutoRemovalSliverPoly(EDBObjMessage) returns (google.protobuf.DoubleValue) {}
  rpc SetAutoRemovalSliverPoly(DoublePropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetUseAccelerateViaExtraction(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetUseAccelerateViaExtraction(BoolPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetUseEnableSubstrateNetworkExtraction(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetUseEnableSubstrateNetworkExtraction(BoolPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetUseLDE(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetUseLDE(BoolPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetUseExtractFloatingMetalsDummy(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetUseExtractFloatingMetalsDummy(BoolPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetUseExtractFloatingMetalsFloating(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetUseExtractFloatingMetalsFloating(BoolPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetUseEnableEtchTransform(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetUseEnableEtchTransform(BoolPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetUseEnableHybridExtraction(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetUseEnableHybridExtraction(BoolPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetUseEnableAdvancedCapEffects(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetUseEnableAdvancedCapEffects(BoolPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetUseOverrideShrinkFac(EDBObjMessage) returns (google.protobuf.BoolValue) {}
  rpc SetUseOverrideShrinkFac(BoolPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetOverrideShrinkFac(EDBObjMessage) returns (google.protobuf.DoubleValue) {}
  rpc SetOverrideShrinkFac(DoublePropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetAdvancedOptions(EDBObjMessage) returns (RaptorXSimSettingsOptionsMessage) {}
  rpc SetAdvancedOptions(RaptorXSimSettingsOptionsPropertyMessage) returns (google.protobuf.Empty) {}

  rpc GetNetSettingsOptions(EDBObjMessage) returns (RaptorXSimSettingsOptionsMessage) {}
  rpc SetNetSettingsOptions(RaptorXSimSettingsOptionsPropertyMessage) returns (google.protobuf.Empty) {}
}

message RaptorXSimSettingsOptionsMessage
{
  map<string, StringsMessage> options = 1;
}

message RaptorXSimSettingsOptionsPropertyMessage
{
  RaptorXSimSettingsOptionsMessage value = 1;
  EDBObjMessage target = 2;
}