本文整理汇总了Python中sfepy.base.base.Struct.get_default_attr方法的典型用法代码示例。如果您正苦于以下问题:Python Struct.get_default_attr方法的具体用法?Python Struct.get_default_attr怎么用?Python Struct.get_default_attr使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sfepy.base.base.Struct
的用法示例。
在下文中一共展示了Struct.get_default_attr方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: ProblemDefinition
# 需要导入模块: from sfepy.base.base import Struct [as 别名]
# 或者: from sfepy.base.base.Struct import get_default_attr [as 别名]
class ProblemDefinition( Struct ):
"""
Problem definition, the top-level class holding all data necessary to solve
a problem.
It can be constructed from a :class:`ProblemConf` instance using
`ProblemDefinition.from_conf()` or directly from a problem
description file using `ProblemDefinition.from_conf_file()`
For interactive use, the constructor requires only the `equations`,
`nls` and `ls` keyword arguments.
"""
@staticmethod
def from_conf_file(conf_filename, required=None, other=None,
init_fields=True, init_equations=True,
init_solvers=True):
_required, _other = get_standard_keywords()
if required is None:
required = _required
if other is None:
other = _other
conf = ProblemConf.from_file(conf_filename, required, other)
obj = ProblemDefinition.from_conf(conf,
init_fields=init_fields,
init_equations=init_equations,
init_solvers=init_solvers)
return obj
@staticmethod
def from_conf(conf, init_fields=True, init_equations=True,
init_solvers=True):
if conf.options.get_default_attr('absolute_mesh_path', False):
conf_dir = None
else:
conf_dir = op.dirname(conf.funmod.__file__)
functions = Functions.from_conf(conf.functions)
mesh = Mesh.from_file(conf.filename_mesh, prefix_dir=conf_dir)
trans_mtx = conf.options.get_default_attr('mesh_coors_transform', None)
if trans_mtx is not None:
mesh.transform_coors(trans_mtx)
domain = Domain(mesh.name, mesh)
if get_default_attr(conf.options, 'ulf', False):
domain.mesh.coors_act = domain.mesh.coors.copy()
obj = ProblemDefinition('problem_from_conf', conf=conf,
functions=functions, domain=domain,
auto_conf=False, auto_solvers=False)
obj.set_regions(conf.regions, obj.functions)
obj.clear_equations()
if init_fields:
obj.set_fields( conf.fields )
if init_equations:
obj.set_equations(conf.equations, user={'ts' : obj.ts})
if init_solvers:
obj.set_solvers( conf.solvers, conf.options )
return obj
def __init__(self, name, conf=None, functions=None,
domain=None, fields=None, equations=None, auto_conf=True,
nls=None, ls=None, ts=None, auto_solvers=True):
self.name = name
self.conf = conf
self.functions = functions
self.reset()
self.ts = get_default(ts, self.get_default_ts())
if auto_conf:
if equations is None:
raise ValueError('missing equations in auto_conf mode!')
self.equations = equations
if fields is None:
variables = self.equations.variables
fields = {}
for field in [var.get_field() for var in variables]:
fields[field.name] = field
self.fields = fields
if domain is None:
domain = self.fields.values()[0].domain
#.........这里部分代码省略.........