def setComponent(self, componentName): if type(componentName) == StringType: self.componentName = componentName.lower() from elmer import Elmer self.componentName == "elmer" self.mechanicalSolver = Elmer(self.mesh) self.mechanicalSolver.calcTimesDico = Dico() self.mechanicalSolver.setMechaSolverDefaults() self.mechanicalSolver.setProblemType("mechanical") self.mechanicalSolver.setDirBC(None, self.boundaryConditions) self.mechanicalSolver.setDirIC(self.initialConditions) if (self.timeStepIntervals == None and self.calculationTimes != None): self.timeStepIntervals = len(self.calculationTimes) - 1 self.timeStepSizes = [ self.calculationTimes[i + 1] - self.calculationTimes[i] for i in range(len(self.calculationTimes) - 1) ] pass elif (self.timeStepIntervals != None): self.mechanicalSolver.setTimeDiscretisation( self.timeStepIntervals, self.timeStepSizes) pass self.mechanicalSolver.setOutputName(self.problem.name) pass else: raise Warning( " the default mechanical solver has been fixed to elmer ") self.componentName = "elmer" pass # # # self.mechanicalSolver.setBodyList(self.problem.getRegions()) # # # # print " dbg hm we set the bic ",self.boundaryConditions self.mechanicalSolver.setBoundaryConditionConcentrations( self.boundaryConditions) # # Density # if self.density: self.mechanicalSolver.setSolidDensity(self.density) # # # #self.mechanicalSolver.setInitialConditions(self.initialConditions) # # Gravity # #if self.gravity: # self.mechanicalSolver.setGravity(self.gravity) # # Porosity # if self.matrixCompressibilityFactor: self.mechanicalSolver.setMatrixCompressibilityFactor( self.matrixCompressibilityFactor) # # Sources # if self.sourceField: self.mechanicalSolver.setSource(self.sourceField) # # time steps treatment # if self.simulationType == "Transient": self.mechanicalSolver.calcTimesDico[ 'finalTime'] = self.problem.calculationTimes[-1]