def __init__(self, precision=None, indices=None, complexscalars=None): if (precision is None) or (indices is None) or (complexscalars is None): import petsc_conf defaultprecision, defaultindices, defaultcomplexscalars = petsc_conf.get_conf() if precision is None: if defaultprecision is None: precision = 'double' else: precision = defaultprecision if indices is None: if defaultindices is None: indices = '32bit' else: indices = defaultindices if complexscalars is None: if defaultcomplexscalars is None: complexscalars = False else: complexscalars = defaultcomplexscalars self.precision = precision self.indices = indices self.complexscalars = complexscalars self._update_dtypes()
def __init__(self, precision=None, indices=None, complexscalars=None): if (precision is None) or (indices is None) or (complexscalars is None): import petsc_conf defaultprecision, defaultindices, defaultcomplexscalars = petsc_conf.get_conf( ) if precision is None: if defaultprecision is None: precision = 'double' else: precision = defaultprecision if indices is None: if defaultindices is None: indices = '32bit' else: indices = defaultindices if complexscalars is None: if defaultcomplexscalars is None: complexscalars = False else: complexscalars = defaultcomplexscalars self.precision = precision if self.precision == '__float128': raise RuntimeError( '__float128 (quadruple) precision is not properly supported. One may use double precision by using -binary_write_double in PETSc and precision=\'double\' here' ) self.indices = indices self.complexscalars = complexscalars self._update_dtypes()
def __init__(self, precision=None, indices=None, complexscalars=None): if (precision is None) or (indices is None) or (complexscalars is None): import petsc_conf defaultprecision, defaultindices, defaultcomplexscalars = petsc_conf.get_conf() if precision is None: if defaultprecision is None: precision = 'double' else: precision = defaultprecision if indices is None: if defaultindices is None: indices = '32bit' else: indices = defaultindices if complexscalars is None: if defaultcomplexscalars is None: complexscalars = False else: complexscalars = defaultcomplexscalars self.precision = precision if self.precision == '__float128' : raise RuntimeError('__float128 (quadruple) precision is not properly supported. One may use double precision by using -binary_write_double in PETSc and precision=\'double\' here') self.indices = indices self.complexscalars = complexscalars self._update_dtypes()
def __init__(self, precision=None, indices=None, complexscalars=None): if (precision is None) or (indices is None) or (complexscalars is None): import petsc_conf defaultprecision, defaultindices, defaultcomplexscalars = petsc_conf.get_conf( ) if precision is None: if defaultprecision is None: precision = 'double' else: precision = defaultprecision if indices is None: if defaultindices is None: indices = '32bit' else: indices = defaultindices if complexscalars is None: if defaultcomplexscalars is None: complexscalars = False else: complexscalars = defaultcomplexscalars self.precision = precision self.indices = indices self.complexscalars = complexscalars self._update_dtypes()
#!/usr/bin/env python3 import os import sys import json import shutil petsc_dir = os.environ["PETSC_DIR"] petsc_py = os.path.join(petsc_dir, "lib/petsc/bin/") sys.path.append(petsc_py) from petsc_conf import get_conf if __name__ == "__main__": c = get_conf() with open(os.path.join("petscpy","petsc_conf.json"), "w") as f: json.dump(list(c), f) for f in ["PetscBinaryIO.py", "PetscBinaryIOTrajectory.py"]: shutil.copyfile(os.path.join(petsc_py, f), os.path.join(os.getcwd(), "petscpy", f))