Exemplo n.º 1
0
    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()
Exemplo n.º 2
0
    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()
Exemplo n.º 3
0
    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()
Exemplo n.º 4
0
    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()
Exemplo n.º 5
0
#!/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))