def pdsolve(eq, func=None, hint='default', dict=False, solvefun=None, **kwargs):
 given_hint = hint
 if (not solvefun):
  solvefun = Function('F')
 hints = _desolve(eq, func=func, hint=hint, simplify=True, type='pde', **kwargs)
 eq = hints.pop('eq', False)
 all_ = hints.pop('all', False)
 if all_:
  pdedict = {}
  failed_hints = {}
  gethints = classify_pde(eq, dict=True)
  pdedict.update({'order': gethints['order'], 'default': gethints['default']})
  for hint in hints:
   try:
    rv = _helper_simplify(eq, hint, hints[hint]['func'], hints[hint]['order'], hints[hint][hint], solvefun)
   except NotImplementedError as detail:
    failed_hints[hint] = detail
   else:
    pdedict[hint] = rv
  pdedict.update(failed_hints)
  return pdedict
 else:
  return _helper_simplify(eq, hints['hint'], hints['func'], hints['order'], hints[hints['hint']], solvefun)

def pdsolve ( eq , func = None , hint = 'default' , dict = False , solvefun = None , ** kwargs ) : given_hint = hint if ( not solvefun ) : solvefun = Function ( 'F' ) hints = _desolve ( eq , func = func , hint = hint , simplify = True , type = 'pde' , ** kwargs ) eq = hints . pop ( 'eq' , False ) all_ = hints . pop ( 'all' , False ) if all_ : pdedict = { } failed_hints = { } gethints = classify_pde ( eq , dict = True ) pdedict . update ( { 'order' : gethints [ 'order' ] , 'default' : gethints [ 'default' ] } ) for hint in hints : try : rv = _helper_simplify ( eq , hint , hints [ hint ] [ 'func' ] , hints [ hint ] [ 'order' ] , hints [ hint ] [ hint ] , solvefun ) except NotImplementedError as detail : failed_hints [ hint ] = detail else : pdedict [ hint ] = rv pdedict . update ( failed_hints ) return pdedict else : return _helper_simplify ( eq , hints [ 'hint' ] , hints [ 'func' ] , hints [ 'order' ] , hints [ hints [ 'hint' ] ] , solvefun )
solves any kind of partial differential equation .