@@ -46,7 +46,7 @@ <h1>Source code for ufl.algorithms.apply_derivatives</h1><div class="highlight">
46
46
< span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> numpy</ span > < span class ="w "> </ span > < span class ="k "> as</ span > < span class ="w "> </ span > < span class ="nn "> np</ span >
47
47
48
48
< span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> ufl.action</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> Action</ span >
49
- < span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> ufl.algorithms.analysis</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> extract_arguments</ span >
49
+ < span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> ufl.algorithms.analysis</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> extract_arguments</ span > < span class =" p " > , </ span > < span class =" n " > extract_coefficients </ span >
50
50
< span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> ufl.algorithms.map_integrands</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> map_integrand_dags</ span >
51
51
< span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> ufl.algorithms.replace_derivative_nodes</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> replace_derivative_nodes</ span >
52
52
< span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> ufl.argument</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> BaseArgument</ span >
@@ -1419,9 +1419,12 @@ <h1>Source code for ufl.algorithms.apply_derivatives</h1><div class="highlight">
1419
1419
< a class ="viewcode-back " href ="../../../api-doc/ufl.algorithms.html#ufl.algorithms.apply_derivatives.GateauxDerivativeRuleset.reference_grad "> [docs]</ a >
1420
1420
< span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> reference_grad</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> o</ span > < span class ="p "> ):</ span >
1421
1421
< span class ="w "> </ span > < span class ="sd "> """Differentiate a reference_grad."""</ span >
1422
- < span class ="k "> raise</ span > < span class ="ne "> NotImplementedError</ span > < span class ="p "> (</ span >
1423
- < span class ="s2 "> "Currently no support for ReferenceGrad in CoefficientDerivative."</ span >
1424
- < span class ="p "> )</ span > </ div >
1422
+ < span class ="k "> if</ span > < span class ="nb "> len</ span > < span class ="p "> (</ span > < span class ="n "> extract_coefficients</ span > < span class ="p "> (</ span > < span class ="n "> o</ span > < span class ="p "> ))</ span > < span class ="o "> ></ span > < span class ="mi "> 0</ span > < span class ="p "> :</ span >
1423
+ < span class ="k "> raise</ span > < span class ="ne "> NotImplementedError</ span > < span class ="p "> (</ span >
1424
+ < span class ="s2 "> "Currently no support for ReferenceGrad in CoefficientDerivative."</ span >
1425
+ < span class ="p "> )</ span >
1426
+ < span class ="k "> else</ span > < span class ="p "> :</ span >
1427
+ < span class ="k "> return</ span > < span class ="n "> Zero</ span > < span class ="p "> (</ span > < span class ="n "> o</ span > < span class ="o "> .</ span > < span class ="n "> ufl_shape</ span > < span class ="p "> )</ span > </ div >
1425
1428
1426
1429
< span class ="c1 "> # TODO: This is implementable for regular derivative(M(f),f,v)</ span >
1427
1430
< span class ="c1 "> # but too messy if customized coefficient derivative</ span >
0 commit comments