https://github.com/mdolab/dafoam
Tip revision: a00afb1261888acd67d4945a8affc84b70e15fd2 authored by Ping He on 24 July 2023, 20:00:36 UTC
Added get_ndof to the builder
Added get_ndof to the builder
Tip revision: a00afb1
dafoam_vecgetvalues.py
#!/usr/bin/env python
"""
Read a PETSc vector and print the value(s) at given row(s)
"""
import os, sys
import argparse
import petsc4py
petsc4py.init(sys.argv)
from petsc4py import PETSc
def printVecValues(vecName, rowI, diffTol=1e-30):
# read the vector
vec1 = PETSc.Vec().create(comm=PETSc.COMM_WORLD)
viewer = PETSc.Viewer().createBinary(vecName, comm=PETSc.COMM_WORLD)
vec1.load(viewer)
rowI = int(rowI)
vecSize = vec1.getSize()
if rowI == -1:
for i in range(vecSize):
if abs(vec1.getValue(i)) > diffTol:
print("%12d %16.14e" % (i, vec1.getValue(i)))
else:
print("%12d %16.14e" % (rowI, vec1.getValue(rowI)))
if __name__ == "__main__":
print("\nUsage: python dafoam_vecgetvalues.py vecName rowI")
print("Example python dafoam_vecgetvalues.py dFdW.bin 100")
print("NOTE: if rowI=-1, print all elements\n")
printVecValues(sys.argv[1], sys.argv[2])