Exemplo n.º 1
0
def check_files(base_filename, serial_filename, parallel_filenames):
    global all_tests_successful
    #print("{}: check_files {} {}".format(base_filename, serial_filename, parallel_filenames))

    if serial_filename is None:
        print("{}: Serial file not found!".format(base_filename))
        return

    if len(parallel_filenames) == 0:
        print("{}: Parallel files not found!".format(base_filename))
        return

    data_parallel = py_reader.load_data(parallel_filenames)[0]
    data_serial = py_reader.load_data([serial_filename])[0]

    # check that non-data fields match
    field_names = [
        'dimension', 'nElements', 'timeStepNo', 'currentTime', 'basisFunction',
        'meshType', 'basisOrder', 'onlyNodalValues'
    ]

    files_are_equal = True
    for field_name in field_names:
        if data_parallel[field_name] != data_serial[field_name]:
            print("{}: mismatch in '{}': serial={} != parallel={}".format(
                base_filename, field_name, data_serial[field_name],
                data_parallel[field_name]))
            files_are_equal = False

    # check that data is the same
    for field_variable_serial, field_variable_parallel in zip(
            data_serial['data'], data_parallel['data']):
        if field_variable_serial['name'] != field_variable_parallel['name']:
            print("{}: mismatch in field variable name: serial={} != parallel={}".\
              format(base_filename, field_variable_serial['name'], field_variable_parallel['name']))
            files_are_equal = False

        for component_serial, component_parallel in zip(
                field_variable_serial['components'],
                field_variable_parallel['components']):
            if component_serial['name'] != component_parallel['name']:
                print("{}: mismatch in component name for field variable {}: serial={} != parallel={}".\
                  format(base_filename, field_variable_serial['name'], component_serial['name'], component_parallel['name']))
                files_are_equal = False

            for i, (value_serial, value_parallel) in enumerate(
                    zip(component_serial['values'],
                        component_parallel['values'])):
                diff = abs(value_serial - value_parallel)
                tolerance = 1e-2
                if diff > tolerance:
                    print("{}: mismatch in \"{}\".{}[{}]: serial={} != parallel={} (|diff|={})".\
                      format(base_filename, field_variable_serial['name'], component_serial['name'], i, value_serial, value_parallel, diff))
                    files_are_equal = False

    if files_are_equal:
        print("{} ({} parallel files): match".format(base_filename,
                                                     len(parallel_filenames)))
    else:
        all_tests_successful = False
Exemplo n.º 2
0
def compare_result(data):

    import sys, os
    import py_reader
    import numpy as np

    #print(os.getcwd())
    # load data
    data1 = py_reader.load_data(["out/febio_0000001.py"])
    data2 = py_reader.load_data(["out/opendihu_0000001.py"])

    # if files do not exist
    if data1 == [] or data2 == []:
        return

    component_name = "0"
    total_error = 0

    values1 = py_reader.get_values(data1[0], "geometry", component_name)
    values2 = py_reader.get_values(data2[0], "geometry", component_name)

    # values2 contains entries for quadratic elements
    # extract the corner values
    n_elements = data2[0]['nElements']
    nx = n_elements[0]
    ny = n_elements[1]
    nz = n_elements[2]
    mx = nx * 2 + 1
    my = ny * 2 + 1
    mz = nz * 2 + 1

    values2_linear = []
    for k in range(nz + 1):
        for j in range(ny + 1):
            for i in range(nx + 1):
                values2_linear.append(values2[2 * k * mx * my + 2 * j * mx +
                                              2 * i])

    #print("values1 (febio):    ",list(values1))
    #print("values2 (opendihu): ",values2_linear)

    error_rms = np.sqrt(np.mean((values1 - values2_linear)**2))

    print("rms: {}".format(error_rms))
    with open("rms", "w") as f:
        f.write(str(error_rms))
Exemplo n.º 3
0
def compute_error_filenames(reference_filenames, filenames_to_test, field_variable_name="solution"):
  
  if reference_filenames is None or len(reference_filenames) == 0:
    print("No reference files given")
    return None
    
  if filenames_to_test is None or len(filenames_to_test) == 0: 
    print("No files to test given")
    return None
    
  data_reference = py_reader.load_data(reference_filenames)[0]
  data_test = py_reader.load_data(filenames_to_test)[0]
  
  # parse field variables and extract values
  values_reference = None
  values_test = None
  
  # parse reference field variable
  for field_variable in data_reference["data"]:
    if field_variable["name"] == field_variable_name:
      values_reference = field_variable["components"][0]["values"]
  
  # parse test field variable
  for field_variable in data_test["data"]:
    if field_variable["name"] == field_variable_name:
      values_test = field_variable["components"][0]["values"]
  
  if values_reference is None or values_test is None:
    return None
  
  # compute error
  absolute_error = np.linalg.norm(values_reference - values_test)
  try:
    relative_error = np.linalg.norm((values_reference - values_test) / values_reference)
  except:
    relative_error = np.linalg.norm((values_reference - values_test) / values_test)
  
  relative_error /= len(values_reference)
  
  return relative_error
 def extract4(file):
     if file.endswith('.py'):
         data = py_reader.load_data([file])
         data = data[0]['data']
         solution = next(filter(lambda d: d['name'] == 'solution', data))
         componentX = lambda x: next(
             filter(lambda d: d['name'] == str(x), solution['components']))
         channel_names = [
             'membrane/V', 'sodium_channel_m_gate/m',
             'sodium_channel_h_gate/h', 'potassium_channel_n_gate/n'
         ]
         return np.vstack([componentX(i)['values']
                           for i in channel_names]).T
         raise "FileType not understood: " + file
Exemplo n.º 5
0
]  # the traction force is specified in the reference configuration
#traction_vector = [0.2*variables.force,  0.4*variables.force, 0.5*variables.force]     # the traction force in specified in the reference configuration
face = "2+"
variables.elasticity_neumann_bc = [{
    "element": k * nx * ny + j * nx + i,
    "constantVector": traction_vector,
    "face": face
} for j in range(ny) for i in range(nx)]
#variables.elasticity_dirichlet_bc = {}

print("nRanks: ", variables.meshes["3Dmesh_quadratic"]["nRanks"])

# load initial values from file
initial_values_filename = "initial_values.py"
import py_reader
initial_data = py_reader.load_data([initial_values_filename])
field_variables = initial_data[0]["data"]
x_positions = field_variables[1]["components"][0]["values"]
y_positions = field_variables[1]["components"][1]["values"]
z_positions = field_variables[1]["components"][2]["values"]

config = {
    "scenarioName":                   variables.scenario_name,      # scenario name to identify the simulation runs in the log file
    "logFormat":                      "csv",                        # "csv" or "json", format of the lines in the log file, csv gives smaller files
    "solverStructureDiagramFile":     "out/solver_structure.txt",       # output file of a diagram that shows data connection between solvers
    "mappingsBetweenMeshesLogFile":   "out/mappings_between_meshes_log.txt",    # log file for mappings 
    "Meshes":                         variables.meshes,

    "PreciceAdapter": {        # precice adapter for bottom tendon
    "timeStepOutputInterval":   100,                        # interval in which to display current timestep and time in console
    "timestepWidth":            1,                          # coupling time step width, must match the value in the precice config
Exemplo n.º 6
0
solution_py_files = list(np.extract(np.array(list(map(solution_py_condition, files))), files))


# sort files by number in file name
solution_py_files = sorted(solution_py_files)

# output file names
if len(solution_py_files) == 1:
  print("1 file: {}".format(solution_py_files[0]))
elif len(solution_py_files) <= 4:
  print("{} files: {}".format(len(solution_py_files),solution_py_files))
else:
  print("{} files: {}, {}, {}, ..., {}".format(len(solution_py_files), solution_py_files[0],solution_py_files[1],solution_py_files[2],solution_py_files[-1]))

# load data
data = py_reader.load_data(solution_py_files)

if len(data) == 0:
  print( "no data found.")
  sys.exit(0)

# set global parameters for font sizes
plt.rcParams.update({'font.size': 20})
plt.rcParams['lines.linewidth'] = 3
plt.rcParams['lines.markersize'] = 8

dimension = data[0]['dimension']

####################
# 1D
if dimension == 1:
Exemplo n.º 7
0
files1 = []
for filename in os.listdir(directory1):
    if filename.endswith(".py"):
        files1.append(os.path.join(directory1, filename))
files1 = sorted(files1)

files2 = []
for filename in os.listdir(directory2):
    if filename.endswith(".py"):
        files2.append(os.path.join(directory2, filename))
files2 = sorted(files2)

print("files: ", files1, files2)

# load data
data1 = py_reader.load_data(files1)
data2 = py_reader.load_data(files2)

n_values = min(len(data1), len(data2))

if len(data1) != len(data2):
    print(
        "Warning: Directory {} contains {} files, directory {} contains {} files."
        .format(directory1, len(data1), directory2, len(data2)))

component_name = "0"
total_error = 0
for i in range(n_values):
    values1 = py_reader.get_values(data1[i], "solution", component_name)
    values2 = py_reader.get_values(data2[i], "solution", component_name)
Exemplo n.º 8
0
#node_positions = [[79.88196548528718, 138.44230490662775, 72.0], [84.1096260871754, 138.31655743349813, 72.0], [88.33728668906363, 138.19080996036848, 72.0], [89.598002133421, 139.96951371685657, 72.0], [90.85871757777839, 141.74821747334462, 72.0], [76.10149783100812, 143.16321149777914, 72.0], [80.27591827937458, 143.9465554749207, 72.0], [84.45033872774106, 144.72989945206223, 72.0], [86.5697220643283, 145.8000948322888, 72.0], [88.68910540091555, 146.87029021251539, 72.0], [72.32103017672904, 147.88411808893053, 72.0], [76.44221047157376, 149.57655351634324, 72.0], [80.56339076641848, 151.26898894375594, 72.0], [83.5414419952356, 151.63067594772104, 72.0], [86.51949322405271, 151.99236295168615, 72.0], [71.23271784225128, 150.78925110166716, 72.0], [74.85866336055606, 152.6577237501053, 72.0], [78.48460887886085, 154.52619639854342, 72.0], [81.43059188883157, 154.50720050492959, 72.0], [84.37657489880226, 154.48820461131572, 72.0], [70.1444055077735, 153.6943841144038, 72.0], [73.27511624953837, 155.73889398386734, 72.0], [76.40582699130324, 157.7834038533309, 72.0], [79.31974178242754, 157.38372506213807, 72.0], [82.23365657355183, 156.98404627094527, 72.0], [80.84363734642932, 136.53655485714376, 97.01690331304937], [86.73556883901792, 136.53695725848277, 97.01690331304937], [92.62750033160651, 136.5373596598218, 97.01690331304937], [94.55139199406882, 139.28174878330836, 97.01690331304937], [96.47528365653113, 142.02613790679493, 97.01690331304937], [74.78524747100565, 143.85646972154393, 97.01690331304937], [80.90002885669234, 144.9965358079074, 97.01690331304935], [87.01481024237904, 146.13660189427088, 97.01690331304937], [90.15936401210571, 147.9277813177691, 97.01690331304935], [93.30391778183241, 149.7189607412673, 97.01690331304937], [68.72685759558195, 151.17638458594408, 97.01690331304937], [75.06448887436676, 153.456114357332, 97.01690331304937], [81.40212015315156, 155.73584412871992, 97.01690331304937], [85.76733603014262, 156.57381385222982, 97.01690331304937], [90.13255190713367, 157.4117835757397, 97.01690331304937], [66.63137423780316, 155.5051701182433, 97.01690331304937], [72.57124988131899, 158.16285605471842, 97.01690331304935], [78.51112552483482, 160.8205419911935, 97.01690331304937], [82.84569431214274, 160.88758200727403, 97.01690331304935], [87.18026309945067, 160.95462202335457, 97.01690331304937], [64.53589088002435, 159.83395565054255, 97.01690331304937], [70.07801088827122, 162.8695977521048, 97.01690331304937], [75.6201308965181, 165.90523985366704, 97.01690331304937], [79.92405259414289, 165.20135016231825, 97.01690331304937], [84.22797429176767, 164.49746047096946, 97.01690331304937], [81.80530920757147, 134.63080480765976, 122.03380662609872], [89.36151159086043, 134.75735708346744, 122.03380662609872], [96.91771397414941, 134.88390935927512, 122.03380662609872], [99.50478185471664, 138.59398384976015, 122.03380662609872], [102.09184973528387, 142.3040583402452, 122.03380662609872], [73.46899711100318, 144.5497279453087, 122.03380662609872], [81.5241394340101, 146.04651614089408, 122.03380662609872], [89.57928175701701, 147.54330433647954, 122.03380662609872], [93.74900595988315, 150.05546780324937, 122.03380662609872], [97.91873016274926, 152.5676312700192, 122.03380662609872], [65.13268501443487, 154.46865108295762, 122.03380662609872], [73.68676727715976, 157.33567519832076, 122.03380662609872], [82.24084953988464, 160.20269931368392, 122.03380662609872], [87.99323006504963, 161.5169517567386, 122.03380662609872], [93.74561059021464, 162.83120419979323, 122.03380662609872], [62.03003063335504, 160.22108913481947, 122.03380662609872], [70.28383640208193, 163.6679883593315, 122.03380662609872], [78.5376421708088, 167.11488758384354, 122.03380662609872], [84.26079673545394, 167.2679635096185, 122.03380662609872], [89.98395130009908, 167.42103943539342, 122.03380662609872], [58.92737625227521, 165.9735271866813, 122.03380662609872], [66.88090552700407, 170.00030152034225, 122.03380662609872], [74.83443480173295, 174.0270758540032, 122.03380662609872], [80.52836340585823, 173.01897526249843, 122.03380662609872], [86.2222920099835, 172.01087467099364, 122.03380662609872], [81.37354014493069, 141.79567982331662, 147.05070993914808], [89.40590509478392, 141.9231018606853, 147.05070993914808], [97.43827004463714, 142.05052389805402, 147.05070993914808], [99.74245928673088, 145.98862102408094, 147.05070993914808], [102.04664852882463, 149.92671815010786, 147.05070993914808], [72.98931071812208, 151.536997634973, 147.05070993914808], [81.56829622615707, 153.29668067855795, 147.05070993914805], [90.14728173419206, 155.05636372214286, 147.05070993914808], [94.24073708709727, 157.85647235139828, 147.05070993914805], [98.33419244000247, 160.6565809806537, 147.05070993914808], [64.60508129131347, 161.2783154466294, 147.05070993914808], [73.73068735753023, 164.67025949643056, 147.05070993914808], [82.856293423747, 168.06220354623173, 147.05070993914808], [88.73901488746365, 169.72432367871562, 147.05070993914808], [94.62173635118032, 171.3864438111995, 147.05070993914808], [61.74810805854179, 166.92530483169884, 147.05070993914808], [70.65408215617077, 171.07873743206488, 147.05070993914808], [79.56005625379973, 175.23217003243093, 147.05070993914808], [85.37074274276061, 175.71304511796703, 147.05070993914808], [91.1814292317215, 176.1939202035031, 147.05070993914808], [58.89113482577012, 172.57229421676828, 147.05070993914808], [67.57747695481129, 177.48721536769918, 147.05070993914808], [76.26381908385247, 182.40213651863013, 147.05070993914808], [82.00247059805757, 181.7017665572184, 147.05070993914808], [87.74112211226267, 181.00139659580668, 147.05070993914808], [80.9417710822899, 148.96055483897348, 172.06761325219742], [89.45029859870739, 149.0888466379032, 172.06761325219742], [97.95882611512488, 149.21713843683293, 172.06761325219742], [99.98013671874514, 153.38325819840173, 172.06761325219742], [102.0014473223654, 157.5493779599705, 172.06761325219742], [72.50962432524098, 158.52426732463732, 172.06761325219742], [81.61245301830405, 160.54684521622175, 172.06761325219742], [90.71528171136713, 162.56942310780624, 172.06761325219742], [94.73246821431141, 165.6574768995472, 172.06761325219745], [98.74965471725568, 168.74553069128817, 172.06761325219742], [64.07747756819205, 168.08797981030116, 172.06761325219742], [73.77460743790071, 172.00484379454036, 172.06761325219742], [83.47173730760937, 175.92170777877953, 172.06761325219742], [89.48479970987768, 177.93169560069268, 172.06761325219742], [95.49786211214598, 179.94168342260582, 172.06761325219745], [61.46618548372854, 173.6295205285782, 172.06761325219742], [71.02432791025961, 178.48948650479824, 172.06761325219742], [80.58247033679068, 183.3494524810183, 172.06761325219742], [86.48068875006729, 184.15812672631552, 172.06761325219742], [92.37890716334391, 184.96680097161277, 172.06761325219742], [58.85489339926503, 179.17106124685523, 172.06761325219745], [68.2740483826185, 184.97412921505614, 172.06761325219742], [77.69320336597198, 190.77719718325704, 172.06761325219742], [83.47657779025691, 190.38455785193838, 172.06761325219742], [89.25995221454184, 189.99191852061975, 172.06761325219742], [83.58576782758489, 156.5780271037519, 196.0338066260987], [91.90427231291838, 157.41954937192602, 196.0338066260987], [100.22277679825189, 158.2610716401001, 196.0338066260987], [102.20869054780991, 161.60766324637603, 196.0338066260987], [104.19460429736793, 164.95425485265196, 196.0338066260987], [77.11405531960727, 164.92008447974362, 196.0338066260987], [85.56331247045148, 167.12438193438476, 196.0338066260987], [94.01256962129568, 169.3286793890259, 196.0338066260987], [97.7754830075483, 171.8308042034405, 196.03380662609874], [101.53839639380091, 174.33292901785512, 196.0338066260987], [70.64234281162965, 173.26214185573534, 196.0338066260987], [79.22235262798458, 176.8292144968435, 196.0338066260987], [87.8023624443395, 180.39628713795167, 196.0338066260987], [93.3422754672867, 182.05394516050498, 196.0338066260987], [98.88218849023389, 183.7116031830583, 196.03380662609874], [68.81682990712241, 178.21201297585026, 196.0338066260987], [77.12000478916683, 182.5803103631989, 196.0338066260987], [85.42317967121124, 186.94860775054755, 196.0338066260987], [90.73095357484405, 187.4768208671029, 196.0338066260987], [96.03872747847687, 188.00503398365834, 196.0338066260987], [66.99131700261518, 183.16188409596515, 196.03380662609874], [75.01765695034908, 188.3314062295543, 196.0338066260987], [83.04399689808301, 193.50092836314343, 196.0338066260987], [88.11963168240143, 192.8996965737009, 196.0338066260987], [93.19526646671986, 192.2984647842584, 196.0338066260987], [86.22976457287987, 164.19549936853034, 220.0], [94.35824602712938, 165.75025210594885, 220.0], [102.48672748137888, 167.30500484336733, 220.0], [104.43724437687467, 169.83206829435034, 220.0], [106.38776127237048, 172.35913174533337, 220.0], [81.71848631397356, 171.31590163484992, 220.0], [89.5141719225989, 173.70191865254773, 220.0], [97.30985753122425, 176.08793567024554, 220.0], [100.8184978007852, 178.0041315073338, 220.0], [104.32713807034614, 179.92032734442205, 220.0], [77.20720805506724, 178.4363039011695, 220.0], [84.67009781806843, 181.65358519914665, 220.0], [92.13298758106961, 184.87086649712379, 220.0], [97.1997512246957, 186.17619472031726, 220.0], [102.26651486832179, 187.48152294351073, 220.0], [76.16747433051628, 182.7945054231223, 220.0], [83.21568166807404, 186.67113422159954, 220.0], [90.26388900563182, 190.5477630200768, 220.0], [94.98121839962083, 190.79551500789034, 220.0], [99.69854779360983, 191.0432669957039, 220.0], [75.12774060596531, 187.1527069450751, 220.0], [81.76126551807967, 191.68868324405244, 220.0], [88.39479043019402, 196.2246595430298, 220.0], [92.76268557454594, 195.41483529546343, 220.0], [97.13058071889787, 194.60501104789708, 220.0]]

# artifical node positions
belly_width = 0.02
width = 1.0
height = 1.0

#node_positions = [[79.88196548528718, 138.44230490662775, 72.0], [84.1096260871754, 138.31655743349813, 72.0], [88.33728668906363, 138.19080996036848, 72.0], [89.598002133421, 139.96951371685657, 72.0], [90.85871757777839, 141.74821747334462, 72.0], [76.10149783100812, 143.16321149777914, 72.0], [80.27591827937458, 143.9465554749207, 72.0], [84.45033872774106, 144.72989945206223, 72.0], [86.5697220643283, 145.8000948322888, 72.0], [88.68910540091555, 146.87029021251539, 72.0], [72.32103017672904, 147.88411808893053, 72.0], [76.44221047157376, 149.57655351634324, 72.0], [80.56339076641848, 151.26898894375594, 72.0], [83.5414419952356, 151.63067594772104, 72.0], [86.51949322405271, 151.99236295168615, 72.0], [71.23271784225128, 150.78925110166716, 72.0], [74.85866336055606, 152.6577237501053, 72.0], [78.48460887886085, 154.52619639854342, 72.0], [81.43059188883157, 154.50720050492959, 72.0], [84.37657489880226, 154.48820461131572, 72.0], [70.1444055077735, 153.6943841144038, 72.0], [73.27511624953837, 155.73889398386734, 72.0], [76.40582699130324, 157.7834038533309, 72.0], [79.31974178242754, 157.38372506213807, 72.0], [82.23365657355183, 156.98404627094527, 72.0], [80.74142947436847, 136.79347092369164, 82.00676132521974], [85.72399602689248, 136.62251737348947, 82.00676132521974], [90.7065625794165, 136.45156382328724, 82.00676132521974], [92.40279820314238, 138.70232389705595, 82.00676132521974], [94.0990338268683, 140.95308397082462, 82.00676132521974], [75.86527749992082, 142.75828720093588, 82.00676132521974], [80.91567608320496, 143.68263605619123, 82.00676132521974], [85.96607466648909, 144.6069849114466, 82.00676132521974], [88.69087961650459, 146.01194579241078, 82.00676132521974], [91.41568456652011, 147.41690667337497, 82.00676132521974], [70.98912552547316, 148.72310347818012, 82.00676132521974], [76.10735613951742, 150.74275473889304, 82.00676132521974], [81.22558675356169, 152.7624059996059, 82.00676132521974], [84.97896102986681, 153.32156768776562, 82.00676132521974], [88.73233530617193, 153.8807293759253, 82.00676132521974], [69.39097905917015, 152.44042170839205, 82.00676132521974], [74.04721957960992, 154.7670895460168, 82.00676132521974], [78.70346010004968, 157.0937573836415, 82.00676132521974], [82.4273866998413, 157.0456787411708, 82.00676132521974], [86.15131329963293, 156.99760009870005, 82.00676132521974], [67.79283259286711, 156.15773993860398, 82.00676132521974], [71.9870830197024, 158.79142435314054, 82.00676132521974], [76.18133344653768, 161.4251087676771, 82.00676132521974], [79.8758123698158, 160.76978979457593, 82.00676132521974], [83.57029129309393, 160.1144708214748, 82.00676132521974], [81.60089346344976, 135.14463694075556, 92.01352265043948], [87.33836596660956, 134.92847731348078, 92.01352265043948], [93.07583846976935, 134.712317686206, 92.01352265043948], [95.20759427286377, 137.43513407725533, 92.01352265043948], [97.3393500759582, 140.15795046830462, 92.01352265043948], [75.62905716883353, 142.35336290409265, 92.01352265043948], [81.55543388703532, 143.41871663746178, 92.01352265043948], [87.48181060523711, 144.48407037083095, 92.01352265043948], [90.8120371686809, 146.22379675253276, 92.01352265043948], [94.14226373212466, 147.96352313423455, 92.01352265043948], [69.65722087421727, 149.5620888674297, 92.01352265043948], [75.77250180746108, 151.9089559614428, 92.01352265043948], [81.88778274070489, 154.2558230554559, 92.01352265043948], [86.41648006449802, 155.0124594278102, 92.01352265043948], [90.94517738829114, 155.76909580016448, 92.01352265043948], [67.54924027608901, 154.09159231511694, 92.01352265043948], [73.23577579866375, 156.87645534192828, 92.01352265043948], [78.9223113212385, 159.6613183687396, 92.01352265043948], [83.42418151085104, 159.584156977412, 92.01352265043948], [87.9260517004636, 159.5069955860844, 92.01352265043948], [65.44125967796074, 158.62109576280417, 92.01352265043948], [70.69904978986642, 161.84395472241374, 92.01352265043948], [75.9568399017721, 165.06681368202328, 92.01352265043948], [80.43188295720407, 164.1558545270138, 92.01352265043948], [84.90692601263605, 163.24489537200432, 92.01352265043948], [81.72777536849713, 134.5184096735819, 102.02028397565923], [88.1912282741063, 134.40515484377033, 102.02028397565923], [94.65468117971547, 134.29190001395878, 102.02028397565923], [96.95161443064002, 137.43710954151538, 102.02028397565923], [99.24854768156456, 140.582319069072, 102.02028397565923], [74.83923072735865, 142.76630469115372, 102.02028397565923], [81.60052914657271, 143.971335574588, 102.02028397565923], [88.36182756578677, 145.17636645802236, 102.02028397565923], [92.01080103766436, 147.23825374007356, 102.02028397565923], [95.65977450954195, 149.30014102212476, 102.02028397565923], [67.95068608622016, 151.01419970872553, 102.02028397565923], [75.00983001903911, 153.53751630540575, 102.02028397565923], [82.06897395185808, 156.06083290208593, 102.02028397565923], [87.06998764468871, 157.03939793863174, 102.02028397565923], [92.07100133751933, 158.0179629751775, 102.02028397565923], [65.40358676079977, 156.00646872360278, 102.02028397565923], [72.0854070101718, 159.03020184583994, 102.02028397565923], [78.76722725954384, 162.05393496807704, 102.02028397565923], [83.74544408677153, 162.05228048346217, 102.02028397565923], [88.72366091399923, 162.0506259988473, 102.02028397565923], [62.856487435379385, 160.99873773848003, 102.02028397565923], [69.1609840013045, 164.5228873862741, 102.02028397565923], [75.4654805672296, 168.04703703406818, 102.02028397565923], [80.42090052885436, 167.06516302829263, 102.02028397565923], [85.3763204904791, 166.08328902251708, 102.02028397565923], [81.85465727354452, 133.89218240640824, 112.02704530087898], [89.04409058160306, 133.8818323740599, 112.02704530087898], [96.23352388966158, 133.87148234171156, 112.02704530087898], [98.69563458841625, 137.43908500577547, 112.02704530087898], [101.15774528717093, 141.00668766983938, 112.02704530087898], [74.04940428588378, 143.1792464782148, 112.02704530087898], [81.6456244061101, 144.5239545117143, 112.02704530087898], [89.24184452633642, 145.86866254521377, 112.02704530087898], [93.20956490664783, 148.25271072761436, 112.02704530087898], [97.17728528695922, 150.63675891001495, 112.02704530087898], [66.24415129822304, 152.46631055002135, 112.02704530087898], [74.24715823061715, 155.16607664936868, 112.02704530087898], [82.25016516301126, 157.86584274871598, 112.02704530087898], [87.72349522487939, 159.06633644945325, 112.02704530087898], [93.19682528674751, 160.26683015019051, 112.02704530087898], [63.257933245510536, 157.92134513208862, 112.02704530087898], [70.93503822167986, 161.18394834975157, 112.02704530087898], [78.61214319784919, 164.44655156741453, 112.02704530087898], [84.06670666269201, 164.52040398951235, 112.02704530087898], [89.52127012753483, 164.5942564116102, 112.02704530087898], [60.27171519279803, 163.37637971415592, 112.02704530087898], [67.62291821274258, 167.20182005013447, 112.02704530087898], [74.97412123268712, 171.02726038611306, 112.02704530087898], [80.40991810050464, 169.97447152957147, 112.02704530087898], [85.84571496832216, 168.92168267302986, 112.02704530087898], [81.77701518212135, 135.04518571940974, 122.03380662609871], [89.34309400453206, 135.09212636880602, 122.03380662609872], [96.90917282694278, 135.13906701820227, 122.03380662609871], [99.3546966460551, 138.91535812976394, 122.03380662609872], [101.80022046516743, 142.69164924132562, 122.03380662609871], [73.58430188933134, 144.85629096784126, 122.03380662609872], [81.5872087803276, 146.31341679671385, 122.03380662609874], [89.59011567132387, 147.77054262558642, 122.03380662609872], [93.65793581125945, 150.33702447763736, 122.03380662609874], [97.725755951195, 152.9035063296883, 122.03380662609872], [65.39158859654134, 154.66739621627275, 122.03380662609871], [73.83132355612315, 157.53470722462168, 122.03380662609872], [82.27105851570494, 160.4020182329706, 122.03380662609871], [87.96117497646375, 161.75869082551077, 122.03380662609872], [93.65129143722257, 163.11536341805095, 122.03380662609871], [62.32380398903947, 160.36757210404122, 122.03380662609872], [70.47490246980247, 163.83629375865615, 122.03380662609874], [78.62600095056547, 167.30501541327115, 122.03380662609872], [84.2898906483146, 167.49637559156827, 122.03380662609874], [89.95378034606372, 167.6877357698654, 122.03380662609872], [59.256019381537584, 166.06774799180965, 122.03380662609871], [67.1184813834818, 170.13788029269068, 122.03380662609872], [74.980943385426, 174.20801259357168, 122.03380662609871], [80.61860632016544, 173.2340603576258, 122.03380662609872], [86.25626925490485, 172.26010812167988, 122.03380662609871], [81.69937309069816, 136.19818903241125, 132.04056795131845], [89.64209742746107, 136.30242036355213, 132.04056795131845], [97.58482176422399, 136.40665169469298, 132.04056795131845], [100.01375870369395, 140.39163125375242, 132.04056795131845], [102.44269564316393, 144.37661081281186, 132.04056795131845], [73.1191994927789, 146.5333354574677, 132.04056795131845], [81.5287931545451, 148.1028790817134, 132.04056795131845], [89.93838681631131, 149.6724227059591, 132.04056795131845], [94.10630671587104, 152.42133822766036, 132.04056795131845], [98.27422661543076, 155.17025374936162, 132.04056795131845], [64.53902589485965, 156.86848188252415, 132.04056795131845], [73.41548888162913, 159.9033377998747, 132.04056795131845], [82.29195186839863, 162.9381937172252, 132.04056795131845], [88.19885472804812, 164.45104520156832, 132.04056795131845], [94.10575758769761, 165.9638966859114, 132.04056795131845], [61.389674732568395, 162.81379907599378, 132.04056795131845], [70.01476671792508, 166.4886391675608, 132.04056795131845], [78.63985870328176, 170.16347925912777, 132.04056795131845], [84.51307463393718, 170.47234719362422, 132.04056795131845], [90.38629056459258, 170.78121512812066, 132.04056795131845], [58.24032357027715, 168.75911626946342, 132.04056795131845], [66.61404455422102, 173.07394053524686, 132.04056795131845], [74.9877655381649, 177.3887648010303, 132.04056795131845], [80.82729453982623, 176.4936491856801, 132.04056795131845], [86.66682354148756, 175.5985335703299, 132.04056795131845], [81.46420364499076, 138.79139623729708, 142.04732927653822], [89.61101514775747, 138.91513997791967, 142.0473292765382], [97.75782665052421, 139.0388837185422, 142.04732927653822], [100.03473609985586, 143.15386694536977, 142.0473292765382], [102.31164554918752, 147.26885017219732, 142.04732927653822], [72.89744223752223, 149.25589226311843, 142.0473292765382], [81.49517098055787, 150.933364836107, 142.0473292765382], [90.09289972359352, 152.6108374090956, 142.0473292765382], [94.20143779439317, 155.51450729269789, 142.0473292765382], [98.3099758651928, 158.41817717630016, 142.0473292765382], [64.33068083005372, 159.72038828893972, 142.04732927653822], [73.37932681335826, 162.95158969429437, 142.0473292765382], [82.42797279666283, 166.182791099649, 142.04732927653822], [88.36813948893045, 167.87514764002603, 142.0473292765382], [94.30830618119808, 169.56750418040303, 142.04732927653822], [61.22796256802153, 165.66817101358663, 142.0473292765382], [70.08709013809492, 169.6154569312426, 142.0473292765382], [78.9462177081683, 173.56274284889855, 142.0473292765382], [84.84529013883714, 174.04881238841372, 142.0473292765382], [90.74436256950601, 174.5348819279289, 142.0473292765382], [58.125244305989355, 171.61595373823354, 142.04732927653822], [66.79485346283157, 176.27932416819084, 142.0473292765382], [75.46446261967378, 180.94269459814808, 142.04732927653822], [81.32244078874386, 180.22247713680144, 142.0473292765382], [87.18041895781391, 179.50225967545478, 142.04732927653822], [81.22903419928335, 141.38460344218294, 152.05409060175796], [89.57993286805389, 141.5278595922872, 152.05409060175796], [97.93083153682443, 141.67111574239144, 152.05409060175796], [100.05571349601777, 145.9161026369871, 152.05409060175796], [102.1805954552111, 150.16108953158277, 152.05409060175796], [72.67568498226557, 151.97844906876912, 152.05409060175796], [81.46154880657065, 153.76385059050062, 152.05409060175796], [90.24741263087573, 155.54925211223213, 152.05409060175796], [94.29656887291527, 158.60767635773541, 152.05409060175796], [98.34572511495483, 161.66610060323873, 152.05409060175796], [64.12233576524778, 162.5722946953553, 152.05409060175796], [73.3431647450874, 165.99984158871405, 152.05409060175796], [82.56399372492703, 169.4273884820728, 152.05409060175796], [88.53742424981279, 171.29925007848374, 152.05409060175796], [94.51085477469854, 173.1711116748947, 152.05409060175796], [61.06625040347467, 168.5225429511795, 152.05409060175796], [70.15941355826476, 172.7422746949244, 152.05409060175796], [79.25257671305485, 176.96200643866933, 152.05409060175796], [85.17750564373713, 177.62527758320323, 152.05409060175796], [91.10243457441942, 178.28854872773718, 152.05409060175796], [58.01016504170156, 174.47279120700367, 152.05409060175796], [66.97566237144213, 179.4847078011348, 152.05409060175796], [75.94115970118268, 184.49662439526588, 152.05409060175796], [81.81758703766148, 183.95130508792278, 152.05409060175796], [87.69401437414028, 183.40598578057967, 152.05409060175796], [81.08540264078663, 145.1725791405782, 162.0608519269777], [89.51511573338064, 145.3083531150952, 162.0608519269777], [97.94482882597465, 145.44412708961218, 162.0608519269777], [100.01792510738144, 149.6496804176944, 162.0608519269777], [102.09102138878825, 153.85523374577664, 162.0608519269777], [72.59265465375327, 155.25135819670322, 162.0608519269777], [81.53700091243735, 157.15534790336122, 162.06085192697768], [90.48134717112143, 159.05933761001916, 162.0608519269777], [94.51451854361333, 162.13257662864132, 162.06085192697768], [98.54768991610526, 165.20581564726345, 162.0608519269777], [64.09990666671992, 165.33013725282825, 162.0608519269777], [73.55888609149406, 169.00234269162718, 162.0608519269777], [83.0178655162682, 172.67454813042616, 162.0608519269777], [89.01111197984523, 174.61547283958822, 162.0608519269777], [95.00435844342226, 176.55639754875025, 162.0608519269777], [61.2662179436016, 171.07603173987883, 162.0608519269777], [70.59187073426219, 175.61588059986133, 162.06085192697768], [79.91752352492276, 180.1557294598438, 162.0608519269777], [85.82909719690221, 180.89170215475937, 162.0608519269777], [91.74067086888167, 181.62767484967497, 162.0608519269777], [58.432529220483296, 176.82192622692946, 162.0608519269777], [67.62485537703031, 182.22941850809545, 162.0608519269777], [76.81718153357733, 187.63691078926146, 162.0608519269777], [82.6470824139592, 187.16793146993058, 162.0608519269777], [88.47698329434107, 186.69895215059972, 162.0608519269777], [80.9417710822899, 148.96055483897348, 172.06761325219742], [89.45029859870739, 149.0888466379032, 172.06761325219742], [97.95882611512488, 149.21713843683293, 172.06761325219742], [99.98013671874514, 153.38325819840173, 172.06761325219742], [102.0014473223654, 157.5493779599705, 172.06761325219742], [72.50962432524098, 158.52426732463732, 172.06761325219742], [81.61245301830405, 160.54684521622175, 172.06761325219742], [90.71528171136713, 162.56942310780624, 172.06761325219742], [94.73246821431141, 165.6574768995472, 172.06761325219745], [98.74965471725568, 168.74553069128817, 172.06761325219742], [64.07747756819205, 168.08797981030116, 172.06761325219742], [73.77460743790071, 172.00484379454036, 172.06761325219742], [83.47173730760937, 175.92170777877953, 172.06761325219742], [89.48479970987768, 177.93169560069268, 172.06761325219742], [95.49786211214598, 179.94168342260582, 172.06761325219745], [61.46618548372854, 173.6295205285782, 172.06761325219742], [71.02432791025961, 178.48948650479824, 172.06761325219742], [80.58247033679068, 183.3494524810183, 172.06761325219742], [86.48068875006729, 184.15812672631552, 172.06761325219742], [92.37890716334391, 184.96680097161277, 172.06761325219742], [58.85489339926503, 179.17106124685523, 172.06761325219745], [68.2740483826185, 184.97412921505614, 172.06761325219742], [77.69320336597198, 190.77719718325704, 172.06761325219742], [83.47657779025691, 190.38455785193838, 172.06761325219742], [89.25995221454184, 189.99191852061975, 172.06761325219742], [80.94788381339251, 152.34184147028057, 182.07437457741713], [89.63935336833586, 152.85393549806258, 182.07437457741716], [98.33082292327921, 153.36602952584457, 182.07437457741716], [100.24838694515803, 157.2846815713529, 182.07437457741716], [102.16595096703682, 161.20333361686124, 182.07437457741713], [73.00642035225462, 161.37767483855822, 182.07437457741716], [82.25358994876852, 163.67017864461332, 182.07437457741713], [91.50075954528242, 165.9626824506684, 182.07437457741716], [95.4414486558631, 168.903958250539, 182.07437457741716], [99.38213776644379, 171.8452340504096, 182.07437457741716], [65.06495689111672, 170.41350820683584, 182.07437457741713], [74.86782652920117, 174.48642179116405, 182.07437457741716], [84.67069616728563, 178.55933537549222, 182.07437457741716], [90.6345103665682, 180.5232349297251, 182.07437457741716], [96.59832456585076, 182.487134483958, 182.07437457741716], [62.66988569383054, 175.88967651716698, 182.07437457741716], [72.33434223343554, 180.8650100792646, 182.07437457741713], [81.9987987730405, 185.84034364136227, 182.07437457741716], [87.81676163404214, 186.59404311336039, 182.07437457741713], [93.63472449504377, 187.34774258535853, 182.07437457741716], [60.27481449654436, 181.36584482749805, 182.07437457741716], [69.80085793766987, 187.24359836736517, 182.07437457741716], [79.3269013787954, 193.12135190723228, 182.07437457741713], [84.99901290151608, 192.66485129699566, 182.07437457741716], [90.67112442423678, 192.20835068675905, 182.07437457741713], [80.95399654449513, 155.72312810158766, 192.08113590263687], [89.82840813796435, 156.6190243582219, 192.0811359026369], [98.70281973143355, 157.51492061485618, 192.0811359026369], [100.51663717157089, 161.18610494430408, 192.0811359026369], [102.33045461170825, 164.85728927375195, 192.08113590263687], [73.50321637926825, 164.23108235247912, 192.08113590263687], [82.89472687923299, 166.79351207300482, 192.0811359026369], [92.2862373791977, 169.35594179353055, 192.0811359026369], [96.1504290974148, 172.15043960153082, 192.0811359026369], [100.0146208156319, 174.94493740953106, 192.08113590263687], [66.05243621404139, 172.73903660337055, 192.08113590263687], [75.96104562050164, 176.96799978778773, 192.0811359026369], [85.86965502696187, 181.19696297220491, 192.0811359026369], [91.78422102325871, 183.11477425875754, 192.0811359026369], [97.69878701955555, 185.03258554531016, 192.08113590263687], [63.873585903932536, 178.14983250575574, 192.08113590263687], [73.64435655661144, 183.24053365373098, 192.0811359026369], [83.41512720929035, 188.33123480170622, 192.0811359026369], [89.15283451801699, 189.02995950040523, 192.0811359026369], [94.89054182674363, 189.72868419910426, 192.08113590263687], [61.69473559382369, 183.5606284081409, 192.08113590263687], [71.32766749272125, 189.5130675196742, 192.08113590263687], [80.96059939161881, 195.4655066312075, 192.08113590263687], [86.52144801277527, 194.94514474205295, 192.08113590263687], [92.0822966339317, 194.42478285289837, 192.08113590263687], [82.53820485826736, 158.58704454018255, 202.08789722785664], [91.22974340154617, 159.87551218275814, 202.08789722785667], [99.92128194482495, 161.1639798253338, 202.08789722785667], [101.71690466175029, 164.45697460374916, 202.08789722785667], [103.51252737867563, 167.74996938216455, 202.08789722785664], [76.13666913174268, 166.707992531156, 202.08789722785662], [85.06863759922922, 169.31988803530692, 202.08789722785667], [94.00060606671576, 171.93178353945788, 202.08789722785667], [97.70079242255639, 174.42749158066567, 202.08789722785667], [101.40097877839703, 176.9231996218735, 202.08789722785664], [69.735133405218, 174.82894052212947, 202.08789722785662], [78.90753179691228, 178.76426388785572, 202.08789722785667], [88.07993018860657, 182.69958725358197, 202.08789722785667], [93.6846801833625, 184.39800855758222, 202.08789722785667], [99.28943017811844, 186.09642986158246, 202.08789722785664], [67.85432607073284, 180.00441029941265, 202.08789722785664], [76.86161171488715, 184.71758032465138, 202.08789722785667], [85.86889735904145, 189.43075034989016, 202.08789722785667], [91.2240048714093, 189.9150071937429, 202.08789722785667], [96.57911238377717, 190.39926403759569, 202.08789722785664], [65.97351873624767, 185.1798800766958, 202.08789722785664], [74.81569163286201, 190.67089676144707, 202.08789722785664], [83.65786452947634, 196.16191344619835, 202.08789722785664], [88.76332955945612, 195.43200582990363, 202.08789722785664], [93.8687945894359, 194.7020982136089, 202.08789722785664], [84.1224131720396, 161.45096097877743, 212.0946585530764], [92.63107866512799, 163.1320000072944, 212.0946585530764], [101.13974415821637, 164.81303903581139, 212.0946585530764], [102.91717215192969, 167.72784426319427, 212.0946585530764], [104.69460014564301, 170.64264949057716, 212.0946585530764], [78.7701218842171, 169.18490270983293, 212.09465855307639], [87.24254831922546, 171.84626399760907, 212.0946585530764], [95.71497475423382, 174.5076252853852, 212.0946585530764], [99.251155747698, 176.70454355980058, 212.0946585530764], [102.78733674116216, 178.90146183421595, 212.0946585530764], [73.41783059639461, 176.91884444088842, 212.09465855307639], [81.85401797332293, 180.5605279879237, 212.09465855307639], [90.29020535025126, 184.20221153495902, 212.0946585530764], [95.5851393434663, 185.68124285640687, 212.0946585530764], [100.88007333668132, 187.16027417785475, 212.0946585530764], [71.83506623753314, 181.85898809306957, 212.09465855307639], [80.07886687316284, 186.19462699557184, 212.0946585530764], [88.32266750879256, 190.5302658980741, 212.0946585530764], [93.29517522480164, 190.8000548870806, 212.0946585530764], [98.2676829408107, 191.06984387608708, 212.0946585530764], [70.25230187867166, 186.79913174525072, 212.0946585530764], [78.30371577300276, 191.82872600321997, 212.0946585530764], [86.35512966733387, 196.85832026118922, 212.0946585530764], [91.00521110613698, 195.91886691775431, 212.0946585530764], [95.65529254494008, 194.97941357431944, 212.0946585530764], [85.17608887245973, 162.82323017365388, 216.04732927653822], [93.49466234612868, 164.4411260566216, 216.04732927653822], [101.81323581979763, 166.05902193958934, 216.04732927653822], [103.67720826440218, 168.77995627877232, 216.04732927653822], [105.54118070900674, 171.50089061795526, 216.04732927653822], [80.24430409909533, 170.2504021723414, 216.0473292765382], [88.37836012091219, 172.77409132507842, 216.04732927653822], [96.51241614272902, 175.29778047781537, 216.04732927653822], [100.0348267742416, 177.35433753356722, 216.04732927653822], [103.55723740575415, 179.410894589319, 216.04732927653822], [75.31251932573093, 177.67757417102897, 216.0473292765382], [83.26205789569568, 181.10705659353516, 216.0473292765382], [91.21159646566043, 184.5365390160414, 216.04732927653822], [96.39244528408099, 185.92871878836206, 216.04732927653822], [101.57329410250156, 187.32089856068274, 216.04732927653822], [74.00127028402471, 182.32674675809594, 216.0473292765382], [81.64727427061844, 186.4328806085857, 216.04732927653822], [89.2932782572122, 190.53901445907545, 216.04732927653822], [94.13819681221122, 190.79778494748544, 216.04732927653822], [98.98311536721026, 191.0565554358955, 216.04732927653822], [72.6900212423185, 186.9759193451629, 216.04732927653822], [80.03249064554122, 191.75870462363622, 216.04732927653822], [87.37496004876394, 196.5414899021095, 216.04732927653822], [91.88394834034146, 195.66685110660887, 216.04732927653822], [96.39293663191899, 194.79221231110824, 216.04732927653822], [86.22976457287987, 164.19549936853034, 220.0], [94.35824602712938, 165.75025210594885, 220.0], [102.48672748137888, 167.30500484336733, 220.0], [104.43724437687467, 169.83206829435034, 220.0], [106.38776127237048, 172.35913174533337, 220.0], [81.71848631397356, 171.31590163484992, 220.0], [89.5141719225989, 173.70191865254773, 220.0], [97.30985753122425, 176.08793567024554, 220.0], [100.8184978007852, 178.0041315073338, 220.0], [104.32713807034614, 179.92032734442205, 220.0], [77.20720805506724, 178.4363039011695, 220.0], [84.67009781806843, 181.65358519914665, 220.0], [92.13298758106961, 184.87086649712379, 220.0], [97.1997512246957, 186.17619472031726, 220.0], [102.26651486832179, 187.48152294351073, 220.0], [76.16747433051628, 182.7945054231223, 220.0], [83.21568166807404, 186.67113422159954, 220.0], [90.26388900563182, 190.5477630200768, 220.0], [94.98121839962083, 190.79551500789034, 220.0], [99.69854779360983, 191.0432669957039, 220.0], [75.12774060596531, 187.1527069450751, 220.0], [81.76126551807967, 191.68868324405244, 220.0], [88.39479043019402, 196.2246595430298, 220.0], [92.76268557454594, 195.41483529546343, 220.0], [97.13058071889787, 194.60501104789708, 220.0]]

# load mesh

import py_reader  # reader utility for opendihu *.py files

# load data from file
input_files = ["static_result.py"]
static_data = py_reader.load_data(input_files)

# extract values
initial_displacements = []
geometry = []
u = []
for dataset in static_data:

    print("field variables: {}".format(
        py_reader.get_field_variable_names(dataset)))

    # parse geometry (node positions)
    x_values = py_reader.get_values(dataset, "geometry", "x")
    y_values = py_reader.get_values(dataset, "geometry", "y")
    z_values = py_reader.get_values(dataset, "geometry", "z")
Exemplo n.º 9
0
def compute_error_filenames(reference_filenames,
                            filenames_to_test,
                            field_variable_name="solution"):

    if reference_filenames is None or len(reference_filenames) == 0:
        print("No reference files given")
        return None

    if filenames_to_test is None or len(filenames_to_test) == 0:
        print("No files to test given")
        return None

    data_sets_reference = py_reader.load_data(reference_filenames)
    data_sets_to_test = py_reader.load_data(filenames_to_test)

    if len(data_sets_reference) != len(data_sets_to_test):
        print(
            "Number of timesteps does not match! Reference data set: {}, Test data set: {}"
            .format(data_sets_reference, data_sets_to_test))

    data_reference = data_sets_reference[-1]
    data_test = data_sets_to_test[-1]

    # parse field variables and extract values
    values_reference = None
    values_test = None

    data_reference

    # parse reference field variable
    for field_variable in data_reference["data"]:
        if field_variable["name"] == field_variable_name:
            values_reference = field_variable["components"][0]["values"]

    # parse test field variable
    for field_variable in data_test["data"]:
        if field_variable["name"] == field_variable_name:
            values_test = field_variable["components"][0]["values"]

    if values_reference is None or values_test is None:
        return None

    # compute error
    absolute_error = np.linalg.norm(values_reference - values_test)
    print("values_reference: ", values_reference)
    print("values_test: ", values_test)
    print("difference: ", values_reference - values_test)

    try:
        relative_error = np.linalg.norm(
            (values_reference - values_test) / values_reference)
    except:
        relative_error = np.linalg.norm(
            (values_reference - values_test) / values_test)

    print("Absoluter Fehler: ", absolute_error)

    relative_error /= len(values_reference)

    print("Relativer Fehler: ", relative_error)

    return relative_error
Exemplo n.º 10
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Script that parses the output from the febio and opendihu scenarios and computes a total error

import sys, os
import py_reader
import numpy as np

#print(os.getcwd())
# load data
data1 = py_reader.load_data(["build_release/out/febio_0000001.py"])
data2 = py_reader.load_data(["build_release/out/opendihu_0000001.py"])

# if files do not exist
if data1 == [] or data2 == []:
    quit()

component_name = "0"
total_error = 0

values1 = py_reader.get_values(data1[0], "geometry", component_name)
values2 = py_reader.get_values(data2[0], "geometry", component_name)

min_u1, max_u1 = py_reader.get_min_max(data1, "u", "2")
min_u2, max_u2 = py_reader.get_min_max(data2, "u", "z")

print("maximum z-displacement febio:    {}".format(max_u1))
print("maximum z-displacement opendihu: {}".format(max_u2))

# values2 contains entries for quadratic elements
Exemplo n.º 11
0
muscle_spindles_files = [
    "out/{}".format(filename) for filename in sorted(
        list(np.extract(np.array(list(map(condition, filenames))), filenames)))
]

condition = lambda filename: suffix in filename and "motoneurons" in filename
motoneurons_files = [
    "out/{}".format(filename) for filename in sorted(
        list(np.extract(np.array(list(map(condition, filenames))), filenames)))
]

print("Number of input files: muscle spindles: {}, motoneurons: {}".\
  format(len(muscle_spindles_files), len(motoneurons_files)))

# load data
muscle_spindles_data = py_reader.load_data(muscle_spindles_files)
motoneurons_data = py_reader.load_data(motoneurons_files)

# create plots
fig, axes = plt.subplots(2, 1, figsize=(12, 6), sharex=True)

# ---------------------
# plot muscle spindles
component_name_input = "(P)modell/L"
component_name_output = "modell/primary_afferent"

t_values = None
values_output = None
values_input = None

# loop over datasets at different times
Exemplo n.º 12
0
interneurons_files = [
    "out/{}".format(filename) for filename in sorted(
        list(np.extract(np.array(list(map(condition, filenames))), filenames)))
]

condition = lambda filename: ".py" in filename and "motoneurons" in filename
motoneurons_files = [
    "out/{}".format(filename) for filename in sorted(
        list(np.extract(np.array(list(map(condition, filenames))), filenames)))
]

print("Number of input files: muscle spindles: {}, golgi tendon organs: {}, interneurons: {}, motoneurons: {}".\
  format(len(muscle_spindles_files), len(golgi_tendon_organs_files), len(interneurons_files), len(motoneurons_files)))

# load data
muscle_spindles_data = py_reader.load_data(muscle_spindles_files)
golgi_tendon_organs_data = py_reader.load_data(golgi_tendon_organs_files)
interneurons_data = py_reader.load_data(interneurons_files)
motoneurons_data = py_reader.load_data(motoneurons_files)

# create plots
fig, axes = plt.subplots(4, 1, figsize=(12, 8), sharex=True)

# ---------------------
# plot muscle spindles
component_name_input = "(P)membrane/i_Stim"
component_name_output = "membrane/V"

t_values = None
values_output = None
values_input = None