Adaptation

HOMARD

import inspect
import os
import os.path as osp
import shutil
import tempfile

import salome
salome.salome_init_without_session()

from salome.smesh import smeshBuilder
import SMESHHOMARD

smesh = smeshBuilder.New()

data_dir = osp.abspath(osp.join(osp.dirname(inspect.getfile(lambda: None)), 'data'))
working_dir = tempfile.mkdtemp()

input_med_1 = osp.join(data_dir, "tutorial_4.00.med")
input_xao_1 = osp.join(data_dir, "tutorial_4.xao")
output_med_1 = osp.join(working_dir, "tutorial_4.00_Uniform_R.med")
log_file_1 = osp.join(working_dir, "tutorial_4.00_Uniform_R.log")

# Case 1: input: med file
#         output: med file, log file, published mesh
if osp.isfile(output_med_1):
  os.remove(output_med_1)
if osp.isfile(log_file_1):
  os.remove(log_file_1)

cao_name = "CAO_PIQUAGE"
smeshhomard = smesh.Adaptation("Uniform")
smeshhomard.CreateBoundaryCAO(cao_name, input_xao_1)
smeshhomard.CreateCase("PIQUAGE", input_med_1, working_dir)
smeshhomard.AddBoundary(cao_name)
smeshhomard.SetConfType(0)
smeshhomard.SetKeepMedOUT(True)
smeshhomard.SetPublishMeshOUT(True)
smeshhomard.SetMeshNameOUT("PIQUAGE_Uniform_R_01")
smeshhomard.SetMeshFileOUT(output_med_1)
smeshhomard.SetKeepWorkingFiles(False)
smeshhomard.SetLogInFile(True)
smeshhomard.SetLogFile(log_file_1)
smeshhomard.SetRemoveLogOnSuccess(False)
smeshhomard.SetVerboseLevel(3)
if smeshhomard.Compute() != 0: raise Exception("Error when computing Mesh")

if osp.isfile(output_med_1):
  os.remove(output_med_1)
else:
  print("Test Uniform refinement Case 1: Error: no output med file")
  assert(False)

if osp.isfile(log_file_1):
  os.remove(log_file_1)
else:
  print("Test Uniform refinement Case 1: Error: no log file")
  assert(False)

# Case 2: input: mesh, boundaries
#         output: published mesh
input_med_2 = osp.join(data_dir, "tutorial_5.00.med")
input_fr    = osp.join(data_dir, "tutorial_5.fr.med")
output_med_2 = osp.join(working_dir, "tutorial_5.00_Uniform_R.med")
log_file_2 = osp.join(working_dir, "tutorial_5.00_Uniform_R.log")

if osp.isfile(output_med_2):
  os.remove(output_med_2)
if osp.isfile(log_file_2):
  os.remove(log_file_2)

# prepare input mesh
([MAILL], status) = smesh.CreateMeshesFromMED( input_med_2 )

smeshhomard = smesh.Adaptation("Uniform")
smeshhomard.CreateBoundaryDi("Boun_5_1", "MAIL_EXT", input_fr)
smeshhomard.CreateCaseOnMesh("COEUR_2D", MAILL.GetMesh(), working_dir)
smeshhomard.AddBoundary("Boun_5_1")
smeshhomard.SetConfType(1)
smeshhomard.SetKeepMedOUT(False)
smeshhomard.SetPublishMeshOUT(True)
smeshhomard.SetMeshNameOUT("COEUR_2D_Uniform_R")
smeshhomard.SetMeshFileOUT(output_med_2)
smeshhomard.SetKeepWorkingFiles(False)
smeshhomard.SetLogInFile(True)
smeshhomard.SetLogFile(log_file_2)
smeshhomard.SetRemoveLogOnSuccess(True)
smeshhomard.SetVerboseLevel(0)
if smeshhomard.Compute() != 0: raise Exception("Error when computing Mesh")

if osp.isfile(output_med_2):
  print("Test Uniform refinement Case 2: Error: output med file has not been removed")
  assert(False)

if osp.isfile(log_file_2):
  print("Test Uniform refinement Case 2: Error: log file has not been removed")
  assert(False)

shutil.rmtree(working_dir)

if salome.sg.hasDesktop():
  salome.sg.updateObjBrowser()

Download this script

import inspect
import os
import os.path as osp
import shutil
import tempfile

import salome
salome.salome_init_without_session()

from salome.smesh import smeshBuilder
import SMESHHOMARD

smesh = smeshBuilder.New()

data_dir = osp.abspath(osp.join(osp.dirname(inspect.getfile(lambda: None)), 'data'))
working_dir = tempfile.mkdtemp()

input_med = osp.join (data_dir, "test_homard_adapt.med")
output_med_1 = osp.join (working_dir, "test_1.00_Uniform_R_01.med")
output_med_2 = osp.join (working_dir, "test_1.00_Uniform_R_02.med")
log_file_1 = osp.join (working_dir, "test_1.00_Uniform_R_01.med.log")
log_file_2 = osp.join (working_dir, "test_1.00_Uniform_R_02.med.log")

# Case 1: input: med file
#         output: med file, log file, published mesh
if osp.isfile(output_med_1):
  os.remove(output_med_1)
if osp.isfile(log_file_1):
  os.remove(log_file_1)

smeshhomard = smesh.Adaptation("Uniform")
smeshhomard.CreateCase("MAILL", input_med, working_dir)
smeshhomard.SetConfType(0)
smeshhomard.SetKeepMedOUT(True)
smeshhomard.SetPublishMeshOUT(True)
smeshhomard.SetMeshNameOUT("MAILL_Uniform_R_01")
smeshhomard.SetMeshFileOUT(output_med_1)
smeshhomard.SetKeepWorkingFiles(False)
smeshhomard.SetLogInFile(True)
smeshhomard.SetLogFile(log_file_1)
smeshhomard.SetRemoveLogOnSuccess(False)
smeshhomard.SetVerboseLevel(3)
if smeshhomard.Compute() != 0: raise Exception("Error when computing Mesh")

if osp.isfile(output_med_1):
  os.remove(output_med_1)
else:
  print("Test Uniform refinement Case 1: Error: no output med file")
  assert(False)

if osp.isfile(log_file_1):
  os.remove(log_file_1)
else:
  print("Test Uniform refinement Case 1: Error: no log file")
  assert(False)

# Case 2: input: mesh, boundaries
#         output: published mesh
if osp.isfile(output_med_2):
  os.remove(output_med_2)
if osp.isfile(log_file_2):
  os.remove(log_file_2)

# prepare input mesh
([MAILL], status) = smesh.CreateMeshesFromMED( input_med )

#smeshhomard = smesh.Adaptation("Uniform")
Boun_1 = smeshhomard.CreateBoundaryCylinder("Boun_1", 0.5, 0.5, 0.5, 0, 0, 1, 0.25)
smeshhomard.CreateCaseOnMesh("MAILL", MAILL.GetMesh(), working_dir)
smeshhomard.SetConfType(0)
smeshhomard.AddBoundaryGroup("Boun_1", "BORD_EXT")
smeshhomard.AddBoundaryGroup("Boun_1", "MOITIE1")
smeshhomard.SetKeepMedOUT(False)
smeshhomard.SetPublishMeshOUT(True)
smeshhomard.SetMeshNameOUT("MAILL_Uniform_R_02")
smeshhomard.SetMeshFileOUT(output_med_2)
smeshhomard.SetKeepWorkingFiles(False)
smeshhomard.SetLogInFile(True)
smeshhomard.SetLogFile(log_file_2)
smeshhomard.SetRemoveLogOnSuccess(True)
smeshhomard.SetVerboseLevel(0)
if smeshhomard.Compute() != 0: raise Exception("Error when computing Mesh")

if osp.isfile(output_med_2):
  print("Test Uniform refinement Case 2: Error: output med file has not been removed")
  assert(False)

if osp.isfile(log_file_2):
  print("Test Uniform refinement Case 2: Error: log file has not been removed")
  assert(False)

shutil.rmtree(working_dir)

if salome.sg.hasDesktop():
  salome.sg.updateObjBrowser()

Download this script

MG_Adapt

Download this script

See Also the GUI Adaptation.