本文整理汇总了Python中ufl.log.error函数的典型用法代码示例。如果您正苦于以下问题:Python error函数的具体用法?Python error怎么用?Python error使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了error函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: replace_integral_domains
def replace_integral_domains(form, common_domain): # TODO: Move elsewhere
"""Given a form and a domain, assign a common integration domain to
all integrals.
Does not modify the input form (``Form`` should always be
immutable). This is to support ill formed forms with no domain
specified, sometimes occurring in pydolfin, e.g. assemble(1*dx,
mesh=mesh).
"""
domains = form.ufl_domains()
if common_domain is not None:
gdim = common_domain.geometric_dimension()
tdim = common_domain.topological_dimension()
if not all((gdim == domain.geometric_dimension() and
tdim == domain.topological_dimension())
for domain in domains):
error("Common domain does not share dimensions with form domains.")
reconstruct = False
integrals = []
for itg in form.integrals():
domain = itg.ufl_domain()
if domain != common_domain:
itg = itg.reconstruct(domain=common_domain)
reconstruct = True
integrals.append(itg)
if reconstruct:
form = Form(integrals)
return form
示例2: form_info
def form_info(form):
if not isinstance(form, Form):
error("Expecting a Form.")
bf = form.arguments()
cf = form.coefficients()
s = "Form info:\n"
s += " rank: %d\n" % len(bf)
s += " num_coefficients: %d\n" % len(cf)
s += "\n"
for f in cf:
if f._name:
s += "\n"
s += " Coefficient %d is named '%s'" % (f._count, f._name)
s += "\n"
integrals = form.integrals()
integral_types = sorted(set(itg.integral_type() for itg in integrals))
for integral_type in integral_types:
itgs = form.integrals_by_type(integral_type)
s += " num_{0}_integrals: {1}\n".format(integral_type, len(itgs))
s += "\n"
for integral_type in integral_types:
itgs = form.integrals_by_type(integral_type)
for itg in itgs:
s += integral_info(itg)
s += "\n"
return s
示例3: extract_subelement_reference_component
def extract_subelement_reference_component(self, i):
"""Extract direct subelement index and subelement relative
reference_component index for a given reference_component index."""
if isinstance(i, int):
i = (i,)
self._check_reference_component(i)
# Select between indexing modes
assert len(self.reference_value_shape()) == 1
# Indexing into a long vector of flattened subelement shapes
j, = i
# Find subelement for this index
for sub_element_index, e in enumerate(self._sub_elements):
sh = e.reference_value_shape()
si = product(sh)
if j < si:
break
j -= si
if j < 0:
error("Moved past last value reference_component!")
# Convert index into a shape tuple
st = shape_to_strides(sh)
reference_component = unflatten_index(j, st)
return (sub_element_index, reference_component)
示例4: math_function
def math_function(self, o, df):
# FIXME: Introduce a UserOperator type instead of this hack
# and define user derivative() function properly
if hasattr(o, 'derivative'):
f, = o.ufl_operands
return df * o.derivative()
error("Unknown math function.")
示例5: __init__
def __init__(self, *expressions):
Operator.__init__(self, expressions)
# Checks
indexset = set(self.ufl_operands[0].ufl_free_indices)
if not all(not (indexset ^ set(e.ufl_free_indices)) for e in self.ufl_operands):
error("Can't combine subtensor expressions with different sets of free indices.")
示例6: register_element2
def register_element2(family, value_rank, sobolev_space, mapping,
degree_range, cellnames):
"Register new finite element family."
if family in ufl_elements:
error('Finite element \"%s\" has already been registered.' % family)
ufl_elements[family] = (family, family, value_rank, sobolev_space,
mapping, degree_range, cellnames)
示例7: spatial_coordinate
def spatial_coordinate(self, o):
do = self._w2v.get(o)
# d x /d x => Argument(x.function_space())
if do is not None:
return do
else:
error("Not implemented: CoordinateDerivative found a SpatialCoordinate that is different from the one being differentiated.")
示例8: cofactor
def cofactor(self, o, A):
# TODO: Find common subexpressions here.
# TODO: Better implementation?
sh = self._square_matrix_shape(A)
if sh[0] == 2:
return as_matrix([[A[1,1],-A[1,0]],[-A[0,1],A[0,0]]])
elif sh[0] == 3:
return as_matrix([
[A[1,1]*A[2,2] - A[2,1]*A[1,2],A[2,0]*A[1,2] - A[1,0]*A[2,2], - A[2,0]*A[1,1] + A[1,0]*A[2,1]],
[A[2,1]*A[0,2] - A[0,1]*A[2,2],A[0,0]*A[2,2] - A[2,0]*A[0,2], - A[0,0]*A[2,1] + A[2,0]*A[0,1]],
[A[0,1]*A[1,2] - A[1,1]*A[0,2],A[1,0]*A[0,2] - A[0,0]*A[1,2], - A[1,0]*A[0,1] + A[0,0]*A[1,1]]
])
elif sh[0] == 4:
return as_matrix([
[-A[3,1]*A[2,2]*A[1,3] - A[3,2]*A[2,3]*A[1,1] + A[1,3]*A[3,2]*A[2,1] + A[3,1]*A[2,3]*A[1,2] + A[2,2]*A[1,1]*A[3,3] - A[3,3]*A[2,1]*A[1,2],
-A[1,0]*A[2,2]*A[3,3] + A[2,0]*A[3,3]*A[1,2] + A[2,2]*A[1,3]*A[3,0] - A[2,3]*A[3,0]*A[1,2] + A[1,0]*A[3,2]*A[2,3] - A[1,3]*A[3,2]*A[2,0],
A[1,0]*A[3,3]*A[2,1] + A[2,3]*A[1,1]*A[3,0] - A[2,0]*A[1,1]*A[3,3] - A[1,3]*A[3,0]*A[2,1] - A[1,0]*A[3,1]*A[2,3] + A[3,1]*A[1,3]*A[2,0],
A[3,0]*A[2,1]*A[1,2] + A[1,0]*A[3,1]*A[2,2] + A[3,2]*A[2,0]*A[1,1] - A[2,2]*A[1,1]*A[3,0] - A[3,1]*A[2,0]*A[1,2] - A[1,0]*A[3,2]*A[2,1]],
[ A[3,1]*A[2,2]*A[0,3] + A[0,2]*A[3,3]*A[2,1] + A[0,1]*A[3,2]*A[2,3] - A[3,1]*A[0,2]*A[2,3] - A[0,1]*A[2,2]*A[3,3] - A[3,2]*A[0,3]*A[2,1],
-A[2,2]*A[0,3]*A[3,0] - A[0,2]*A[2,0]*A[3,3] - A[3,2]*A[2,3]*A[0,0] + A[2,2]*A[3,3]*A[0,0] + A[0,2]*A[2,3]*A[3,0] + A[3,2]*A[2,0]*A[0,3],
A[3,1]*A[2,3]*A[0,0] - A[0,1]*A[2,3]*A[3,0] - A[3,1]*A[2,0]*A[0,3] - A[3,3]*A[0,0]*A[2,1] + A[0,3]*A[3,0]*A[2,1] + A[0,1]*A[2,0]*A[3,3],
A[3,2]*A[0,0]*A[2,1] - A[0,2]*A[3,0]*A[2,1] + A[0,1]*A[2,2]*A[3,0] + A[3,1]*A[0,2]*A[2,0] - A[0,1]*A[3,2]*A[2,0] - A[3,1]*A[2,2]*A[0,0]],
[ A[3,1]*A[1,3]*A[0,2] - A[0,2]*A[1,1]*A[3,3] - A[3,1]*A[0,3]*A[1,2] + A[3,2]*A[1,1]*A[0,3] + A[0,1]*A[3,3]*A[1,2] - A[0,1]*A[1,3]*A[3,2],
A[1,3]*A[3,2]*A[0,0] - A[1,0]*A[3,2]*A[0,3] - A[1,3]*A[0,2]*A[3,0] + A[0,3]*A[3,0]*A[1,2] + A[1,0]*A[0,2]*A[3,3] - A[3,3]*A[0,0]*A[1,2],
-A[1,0]*A[0,1]*A[3,3] + A[0,1]*A[1,3]*A[3,0] - A[3,1]*A[1,3]*A[0,0] - A[1,1]*A[0,3]*A[3,0] + A[1,0]*A[3,1]*A[0,3] + A[1,1]*A[3,3]*A[0,0],
A[0,2]*A[1,1]*A[3,0] - A[3,2]*A[1,1]*A[0,0] - A[0,1]*A[3,0]*A[1,2] - A[1,0]*A[3,1]*A[0,2] + A[3,1]*A[0,0]*A[1,2] + A[1,0]*A[0,1]*A[3,2]],
[ A[0,3]*A[2,1]*A[1,2] + A[0,2]*A[2,3]*A[1,1] + A[0,1]*A[2,2]*A[1,3] - A[2,2]*A[1,1]*A[0,3] - A[1,3]*A[0,2]*A[2,1] - A[0,1]*A[2,3]*A[1,2],
A[1,0]*A[2,2]*A[0,3] + A[1,3]*A[0,2]*A[2,0] - A[1,0]*A[0,2]*A[2,3] - A[2,0]*A[0,3]*A[1,2] - A[2,2]*A[1,3]*A[0,0] + A[2,3]*A[0,0]*A[1,2],
-A[0,1]*A[1,3]*A[2,0] + A[2,0]*A[1,1]*A[0,3] + A[1,3]*A[0,0]*A[2,1] - A[1,0]*A[0,3]*A[2,1] + A[1,0]*A[0,1]*A[2,3] - A[2,3]*A[1,1]*A[0,0],
A[1,0]*A[0,2]*A[2,1] - A[0,2]*A[2,0]*A[1,1] + A[0,1]*A[2,0]*A[1,2] + A[2,2]*A[1,1]*A[0,0] - A[1,0]*A[0,1]*A[2,2] - A[0,0]*A[2,1]*A[1,2]]
])
error("Cofactor not implemented for dimension %s." % sh[0])
示例9: deviatoric
def deviatoric(self, o, A):
sh = self._square_matrix_shape(A)
if sh[0] == 2:
return as_matrix([[-1./2*A[1,1]+1./2*A[0,0],A[0,1]],[A[1,0],1./2*A[1,1]-1./2*A[0,0]]])
elif sh[0] == 3:
return as_matrix([[-1./3*A[1,1]-1./3*A[2,2]+2./3*A[0,0],A[0,1],A[0,2]],[A[1,0],2./3*A[1,1]-1./3*A[2,2]-1./3*A[0,0],A[1,2]],[A[2,0],A[2,1],-1./3*A[1,1]+2./3*A[2,2]-1./3*A[0,0]]])
error("dev(A) not implemented for dimension %s." % sh[0])
示例10: _check_form_arity
def _check_form_arity(preprocessed_form):
# Check that we don't have a mixed linear/bilinear form or
# anything like that
# FIXME: This is slooow and should be moved to form compiler
# and/or replaced with something faster
if 1 != len(compute_form_arities(preprocessed_form)):
error("All terms in form must have same rank.")
示例11: ufl2dot
def ufl2dot(expression, formname="a", nodeoffset=0, begin=True, end=True,
labeling="repr", object_names=None):
if labeling == "repr":
labeller = ReprLabeller()
elif labeling == "compact":
labeller = CompactLabeller(object_names or {})
print(object_names)
if isinstance(expression, Form):
form = expression
subgraphs = []
k = 0
for itg in form.integrals():
prefix = "itg%d_" % k
integralkey = "%s%s" % (itg.integral_type(), itg.subdomain_id())
integrallabel = "%s %s" % (itg.integral_type().capitalize().replace("_", " "), "integral")
integrallabel += " %s" % (itg.subdomain_id(),)
integrand = itg.integrand()
nodes = {}
edges = []
build_entities(integrand, nodes, edges, nodeoffset, prefix,
labeller)
rootnode = nodes[id(integrand)][0]
entitylist = format_entities(nodes, edges)
integralnode = "%s_%s" % (formname, integralkey)
subgraphs.append(integralgraphformat % {
'node': integralnode,
'label': integrallabel,
'formname': formname,
'root': rootnode,
'entities': entitylist, })
nodeoffset += len(nodes)
s = ""
if begin:
s += 'digraph ufl_form\n{\n node [shape="box"] ;\n'
s += ' form_%s [label="Form %s"] ;' % (formname, formname)
s += "\n".join(subgraphs)
if end:
s += "\n}"
elif isinstance(expression, Expr):
nodes = {}
edges = []
build_entities(expression, nodes, edges, nodeoffset, '', labeller)
entitylist = format_entities(nodes, edges)
s = exprgraphformat % entitylist
nodeoffset += len(nodes)
else:
error("Invalid object type %s" % type(expression))
return s, nodeoffset
示例12: _check_elements
def _check_elements(form_data):
for element in chain(form_data.unique_elements,
form_data.unique_sub_elements):
if element.family() is None:
error("Found element with undefined familty: %s" % repr(element))
if element.cell() is None:
error("Found element with undefined cell: %s" % repr(element))
示例13: multiply_block_interior_facets
def multiply_block_interior_facets(point_index, unames, ttypes, unique_tables, unique_table_num_dofs):
rank = len(unames)
tables = [unique_tables.get(name) for name in unames]
num_dofs = tuple(unique_table_num_dofs[name] for name in unames)
num_entities = max([1] + [tbl.shape[0] for tbl in tables if tbl is not None])
ptable = numpy.zeros((num_entities,)*rank + num_dofs)
for facets in itertools.product(*[range(num_entities)]*rank):
vectors = []
for i, tbl in enumerate(tables):
if tbl is None:
assert ttypes[i] == "ones"
vectors.append(numpy.ones((num_dofs[i],)))
else:
# Some tables are compacted along entities or points
e = 0 if tbl.shape[0] == 1 else facets[i]
q = 0 if tbl.shape[1] == 1 else point_index
vectors.append(tbl[e, q, :])
if rank > 1:
assert rank == 2
ptable[facets[0], facets[1], ...] = numpy.outer(*vectors)
elif rank == 1:
ptable[facets[0], :] = vectors[0]
else:
error("Nothing to multiply!")
return ptable
示例14: __init__
def __init__(self, integrals):
# Basic input checking (further compatibilty analysis happens
# later)
if not all(isinstance(itg, Integral) for itg in integrals):
error("Expecting list of integrals.")
# Store integrals sorted canonically to increase signature
# stability
self._integrals = _sorted_integrals(integrals)
# Internal variables for caching domain data
self._integration_domains = None
self._domain_numbering = None
# Internal variables for caching subdomain data
self._subdomain_data = None
# Internal variables for caching form argument data
self._arguments = None
self._coefficients = None
self._coefficient_numbering = None
# Internal variables for caching of hash and signature after
# first request
self._hash = None
self._signature = None
# Never use this internally in ufl!
self._cache = {}
示例15: math_function
def math_function(self, o, a):
if hasattr(o, 'derivative'): # FIXME: Introduce a UserOperator type instead of this hack
f, fp = a
o = self.reuse_if_possible(o, f)
op = fp * o.derivative()
return (o, op)
error("Unknown math function.")