1
2 from empro import _deprecation
3
4 _deprecation.warning(390)
5
6 @_deprecation.deprecated(390)
7 -def launchHybrid(name="", paramList={}):
8 import os, empro
9
10 data = empro.activeProject.createSimulationData()
11 if name != "": name = name + "; "
12
13
14 bc = empro.activeProject.boundaryConditions()
15 oldBC = [bc.xLowerBoundaryType, bc.xUpperBoundaryType, bc.yLowerBoundaryType, bc.yUpperBoundaryType, bc.zLowerBoundaryType, bc.zUpperBoundaryType]
16 bc.xLowerBoundaryType = "PMC"
17 bc.xUpperBoundaryType = "PMC"
18 bc.yLowerBoundaryType = "PMC"
19 bc.yUpperBoundaryType = "PMC"
20 bc.zLowerBoundaryType = "PMC"
21 bc.zUpperBoundaryType = "PMC"
22
23
24 oldOrder = data.femMeshSettings.orderOfBasisFunctions
25 oldSolver = data.femMatrixSolver.solverType
26 oldMinNbPasses = data.femMeshSettings.minimumNumberOfPasses
27 oldMaxNbPasses = data.femMeshSettings.maximumNumberOfPasses
28 data.femMatrixSolver.solverType = "MatrixSolverDirect"
29
30 data.femMeshSettings.minimumNumberOfPasses = 1
31 data.femMeshSettings.maximumNumberOfPasses = 1
32
33
34 param = empro.activeProject.parameters()
35 for key, val in paramList.iteritems():
36 if not param.contains(key):
37 raise Exception("parameter <%s> not available" % key)
38 param.setFormula(key, val)
39 name = name + "%s=%s; " % (key,val)
40
41 try:
42
43 data.name = "[HYBRID] " + name
44 sim = empro.activeProject.createSimulation(False)
45 simpath = os.path.join(sim.simulationPath(),"emds_dsn","design")
46 open(os.path.join(simpath,"fem.cfg"),'w').write("FEM_USE_HYBRID=on")
47 sim = empro.activeProject.simulations()[-1]
48 sim.setQueued(True)
49 print "Launched %s" % data.name
50
51
52
53 except:
54
55 print "FAILED to launch %s" % data.name
56
57 finally:
58
59
60 bc.xLowerBoundaryType = oldBC[0]
61 bc.xUpperBoundaryType = oldBC[1]
62 bc.yLowerBoundaryType = oldBC[2]
63 bc.yUpperBoundaryType = oldBC[3]
64 bc.zLowerBoundaryType = oldBC[4]
65 bc.zUpperBoundaryType = oldBC[5]
66
67
68 data.femMatrixSolver.solverType = oldSolver
69 data.femMeshSettings.orderOfBasisFunctions = oldOrder
70 data.femMeshSettings.maximumNumberOfPasses = oldMaxNbPasses
71 data.femMeshSettings.minimumNumberOfPasses = oldMinNbPasses
72
73 @_deprecation.deprecated(390)
74 -def launchABC(name="", paramList={}):
87
88
89
90 @_deprecation.deprecated(390)
91 -def studyConvergence(paramListAbc, paramListHybrid):
125