Получить текущую систему единиц в Petrel

В настоящее время я работаю над плагином, в котором мне нужно получить текущую систему единиц в буревестнике (т.е. в полевой или в метрической системе). Как его получить?


person Deepak    schedule 15.04.2014    source источник


Ответы (2)


Чтобы получить инвариантную единицу измерения (данные единицы хранятся в):

var invUnit = PetrelUnitSystem.GetInvariantUnit(someTemplate);

Чтобы получить единицу измерения, используемую в настоящее время системой/проектом:

var dispUnit = PetrelUnitSystem.GetDisplayUnit(someTemplate);

Преобразователь для преобразования между ними.

var convInvDisp = PetrelUnitSystem.GetConverter(invUnit, dispUnit);

var fahrenheit=convInvDisp.Convert(100);
person Tessem    schedule 15.04.2014

Вы имеете в виду систему единиц для случая моделирования (которая будет либо полевой, либо метрической)?

Я боюсь, что «Модули моделирования» не доступны через Ocean API.

Однако вы можете проверить, является ли каждый (экспортированный) случай моделирования FIELD или METRIC, проверив наличие ключевого слова FIELD или METRIC в колоде ECLIPSE.

Следующий фрагмент будет проходить через обращения и выводить независимо от того, являются ли они ПОЛЕВЫМИ или МЕТРИЧЕСКИМИ.

 using (ITransaction trans = DataManager.NewTransaction())
 {
     SimulationRoot SimRoot = SimulationRoot.Get(PetrelProject.PrimaryProject);

     foreach (Case Case in SimRoot.Cases)
     {
         EclipseKeywordEditor editor = SimulationSystem.CreateEclipseKeywordEditor(Case);

         trans.Lock(editor);

         foreach (EclipseKeyword keyword in editor.Sections.RunSpec.GetAll("FIELD"))
         {
             // found FIELD keyword

             PetrelLogger.InfoOutputWindow(String.Format("### Case {0} is FIELD", Case.Name));
         }

         foreach (EclipseKeyword keyword in editor.Sections.RunSpec.GetAll("METRIC"))
         {
             // found METRIC keyword

             PetrelLogger.InfoOutputWindow(String.Format("### Case {0} is METRIC", Case.Name));
         }
     }

     trans.Commit();
 }
person Chippy    schedule 23.04.2014