예제 #1
0
tag1 = qtf.SweepTag('s1')
tag2 = qtf.SweepTag('v1')

geo_dict = {'part1': {'side length': tag1}}
geo_task = GeometryTaskExample(options=geo_dict)

poisson_dict = {'part1': {'voltage': tag2}}
poisson_task = PoissonTaskExample(geo_task, options=poisson_dict)

sweeps = [{
    tag1: 1.,
    tag2: 10.
}, {
    tag1: 2.,
    tag2: 10.
}, {
    tag1: 1.,
    tag2: 5.
}, {
    tag1: 4.,
    tag2: 3.
}]

sweep_man = qtf.SweepManager(sweeps)

result = sweep_man.run(poisson_task)

generate_1d_density_plot(poisson_task, 'density_test.h5')

# print(map(dask.result,result.futures))
예제 #2
0
# Craft some geometry
vec = cad.FreeCAD.Vector
doc = cad.FreeCAD.newDocument('template')
doc.addObject('Spreadsheet::Sheet','modelParams')
sketch = doc.addObject('Sketcher::SketchObject', 'Sketch')
ProfileLib.RegularPolygon.makeRegularPolygon('Sketch', 6, vec(10,10,0), vec(120,120,0), False)
sketch.addConstraint(cad.sketchUtils.Sketcher.Constraint('Distance',2,1.))
sketch.setExpression('Constraints['+str(len(sketch.Constraints)-1)+']', u'modelParams.thickness_wire')

# Set up geometry task
tag_al = qtf.SweepTag('Al thickness')
tag_wire = qtf.SweepTag('Wire diameter')
freecad_dict = { 'document': doc, 'params': {'thickness_al': tag_al, 'thickness_wire': tag_wire} }
geo_task = GeoFreeCAD(options=freecad_dict)

sweeps = [ {tag_al: 1., tag_wire: val} for val in np.arange(2,10,2) ]
# ~ sweeps = [ {tag_al: val1, tag_wire: val2}
           # ~ for val1 in np.arange(2,10,2) for val2 in [5.,6.] ]
# ~ sweep_man = qtf.SweepManager.construct_cartesian_product({})
qtf.SweepManager(sweeps).run(geo_task)

# Investigate results
if not os.path.exists('tmp'):
    os.mkdir('tmp')
for res in geo_task.result:
    # ~ res.saveAs("example_geogen_"+str(res.modelParams.d1)+".fcstd")
    draft = cad.sketchUtils.Draft.makeShape2DView(res.Sketch)
    import importSVG
    importSVG.export([draft],u"tmp/example_geogen_"+str(res.modelParams.thickness_wire)+".svg")