Skip to content

Commit

Permalink
Added descriptive amrex::Error messages in generate_code.py (#53)
Browse files Browse the repository at this point in the history
* Added descriptive amrex::Error messages in generate_code.py

Swtiched amrex::Abort to amrex::Error with descriptive error message

* added more to amrex::Error messages
  • Loading branch information
nmford20 authored Mar 18, 2021
1 parent 40809e7 commit 97499f2
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 3 deletions.
21 changes: 18 additions & 3 deletions Scripts/symbolic_hermitians/generate_code.py
Original file line number Diff line number Diff line change
Expand Up @@ -362,7 +362,12 @@ def sgn(t,var):
for fii in fdlist:
code.append("sumP += " + fii + ";")
code.append("error = sumP-1.0;")
code.append("if( std::abs(error) > 100.*parms->maxError) amrex::Abort();")
code.append('if( std::abs(error) > 100.*parms->maxError) {')
code.append("std::ostringstream Convert;")
code.append('Convert << "Matrix trace (SumP) is not equal to 1, trace error exceeds 100*maxError: " << std::abs(error) << " > " << 100.*parms->maxError;')
code.append("std::string Trace_Error = Convert.str();")
code.append('amrex::Error(Trace_Error);')
code.append("}")
code.append("if( std::abs(error) > parms->maxError ) {")
for fii in fdlist:
code.append(fii + " -= error/"+str(args.N)+";")
Expand All @@ -371,7 +376,12 @@ def sgn(t,var):

# make sure diagonals are positive
for fii in fdlist:
code.append("if("+fii+"<-100.*parms->maxError) amrex::Abort();")
code.append('if('+fii+'<-100.*parms->maxError) {')
code.append("std::ostringstream Convert;")
code.append('Convert << "Diagonal element '+fii[14:20]+' is negative, less than -100*maxError: " << '+fii+' << " < " << -100.*parms->maxError;')
code.append("std::string Sign_Error = Convert.str();")
code.append('amrex::Error(Sign_Error);')
code.append("}")
code.append("if("+fii+"<-parms->maxError) "+fii+"=0;")
code.append("")

Expand All @@ -381,7 +391,12 @@ def sgn(t,var):
target_length = "p.rdata(PIdx::L"+t+")"
code.append("length = "+sympy.cxxcode(sympy.simplify(length))+";")
code.append("error = length-"+str(target_length)+";")
code.append("if( std::abs(error) > 100.*parms->maxError) amrex::Abort();")
code.append('if( std::abs(error) > 100.*parms->maxError) {')
code.append("std::ostringstream Convert;")
code.append('Convert << "flavor vector length differs from target length by more than 100*maxError: " << std::abs(error) << " > " << 100.*parms->maxError;')
code.append("std::string Length_Error = Convert.str();")
code.append('amrex::Error(Length_Error);')
code.append("}")
code.append("if( std::abs(error) > parms->maxError) {")
for fii in flist:
code.append(fii+" /= length/"+str(target_length)+";")
Expand Down
2 changes: 2 additions & 0 deletions Source/FlavoredNeutrinoContainer.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#include "FlavoredNeutrinoContainer.H"
#include "Constants.H"
#include <sstream>
#include <string>

using namespace amrex;

Expand Down

0 comments on commit 97499f2

Please sign in to comment.