diff --git a/apps/HeatEquationKernelWithMaterial.py b/apps/HeatEquationKernelWithMaterial.py index 8c489d185d099f635b6ed9e0e64087250d242819..22a84bc3a7fa286d90eb11c2104f6625a775cde4 100644 --- a/apps/HeatEquationKernelWithMaterial.py +++ b/apps/HeatEquationKernelWithMaterial.py @@ -3,9 +3,9 @@ import pystencils as ps from importlib.resources import files from pystencilssfg import SourceFileGenerator from sfg_walberla import Sweep -from pymatlib.core.assignment_converter import assignment_converter -from pymatlib.core.interpolators import InterpolationArrayContainer from pymatlib.core.yaml_parser import create_alloy_from_yaml +from pymatlib.core.assignment_converter import assignment_converter +from pymatlib.core.codegen.interpolation_array_container import InterpolationArrayContainer with SourceFileGenerator() as sfg: data_type = "float64" # if ctx.double_accuracy else "float32" @@ -23,7 +23,7 @@ with SourceFileGenerator() as sfg: yaml_path = files('pymatlib.data.alloys.SS316L').joinpath('SS304L.yaml') mat = create_alloy_from_yaml(yaml_path, u.center()) - arr_container = InterpolationArrayContainer.from_material("SS316L", mat) + arr_container = InterpolationArrayContainer.from_material("SS304L", mat) sfg.generate(arr_container) # Convert assignments to pystencils format diff --git a/apps/array_container_callgraph.py b/apps/array_container_callgraph.py index 90a62ad7fdc4162f245c09209fef8990a46756bb..a379932c32ca5115e9963f6cb1ac1f04e8260210 100644 --- a/apps/array_container_callgraph.py +++ b/apps/array_container_callgraph.py @@ -12,22 +12,39 @@ if not os.path.exists(image_folder): os.makedirs(image_folder) # Create configuration to focus on your specific functions -config = Config() +config = Config(min_depth=1, max_depth=10) config.trace_filter = GlobbingFilter( include=[ + 'pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer.__init__', + 'pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer.from_material', + 'pymatlib.core.interpolators', 'pymatlib.core.interpolators.*', + 'pymatlib.core.interpolators.prepare_interpolation_arrays', + 'pymatlib.core.interpolators.E_eq_from_E_neq', + 'pymatlib.core.interpolators.create_idx_mapping', + 'pymatlib.core.codegen.interpolation_array_container.*', 'pymatlib.core.data_handler.*', - 'InterpolationArrayContainer.*', 'assignment_converter', 'interpolate_property', 'check_equidistant', 'check_strictly_increasing', + 'InterpolationArrayContainer', + 'prepare_interpolation_arrays', + 'E_eq_from_E_neq', + 'create_idx_mapping', ], exclude=[ 'pycallgraph2.*', + '__main__.*', '*.append', # Exclude common methods '*.join', + # Exclude standard library functions that add noise + # '__*__', # Exclude magic methods + '*.<module>', + '*.<listcomp>', # Exclude list comprehensions + # '*.<genexpr>', # Exclude generator expressions + '*.<dictcomp>', # Exclude dictionary comprehensions ] ) @@ -41,7 +58,8 @@ graphviz = GraphvizOutput( font_size=7, group_stdlib=True, output_type='svg', - dpi=1200 + dpi=1200, + include_timing=True, ) # Run the specific part of your code with call graph tracking @@ -51,8 +69,13 @@ with PyCallGraph(config=config, output=graphviz): from importlib.resources import files from pystencilssfg import SourceFileGenerator from pymatlib.core.yaml_parser import create_alloy_from_yaml - from pymatlib.core.interpolators import InterpolationArrayContainer + from pymatlib.core.codegen.interpolation_array_container import InterpolationArrayContainer + from pymatlib.core.interpolators import prepare_interpolation_arrays + # Call the specific functions directly to ensure they're traced + T_eq = np.array([3243.15, 3253.15, 3263.15, 3273.15], dtype=np.float64) + E_neq = np.array([1.68e10, 1.69e10, 1.70e10, 1.71e10], dtype=np.float64) + result = prepare_interpolation_arrays(T_eq, E_neq) with SourceFileGenerator() as sfg: u = fields(f"u: double[2D]", layout='fzyx') @@ -63,10 +86,16 @@ with PyCallGraph(config=config, output=graphviz): custom_container = InterpolationArrayContainer("BinarySearchTests", T_bs, E_bs) sfg.generate(custom_container) + custom_container = InterpolationArrayContainer("BinarySearchTests1", np.flip(T_bs), np.flip(E_bs)) + sfg.generate(custom_container) + T_eq = np.array([3243.15, 3253.15, 3263.15, 3273.15], dtype=np.float64) E_neq = np.array([1.68e10, 1.69e10, 1.70e10, 1.71e10], dtype=np.float64) - custom_container = InterpolationArrayContainer("DoubleLookupTests", np.flip(T_eq), np.flip(E_neq)) + custom_container = InterpolationArrayContainer("DoubleLookupTests", T_eq, E_neq) + sfg.generate(custom_container) + + custom_container = InterpolationArrayContainer("DoubleLookupTests1", np.flip(T_eq), np.flip(E_neq)) sfg.generate(custom_container) yaml_path = files('pymatlib.data.alloys.SS304L').joinpath('SS304L_comprehensive.yaml') diff --git a/apps/callgraph_images/array_container_callgraph.svg b/apps/callgraph_images/array_container_callgraph.svg index ead0a9dd166dff0528bec1a5d954749530909d5e..7206bc26d82d7e02bdacf66be01fe510cc08fa52 100644 --- a/apps/callgraph_images/array_container_callgraph.svg +++ b/apps/callgraph_images/array_container_callgraph.svg @@ -1,19 +1,19 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.43.0 (0) +<!-- Generated by graphviz version 2.50.0 (0) --> <!-- Title: G Pages: 1 --> -<svg width="1123pt" height="448pt" - viewBox="0.00 0.00 1123.00 448.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg width="1192pt" height="448pt" + viewBox="0.00 0.00 1192.00 448.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 444)"> <title>G</title> -<polygon fill="white" stroke="transparent" points="-4,4 -4,-444 1119,-444 1119,4 -4,4"/> -<text text-anchor="middle" x="557.5" y="-6.4" font-family="Verdana" font-size="7.00" fill="#000000" fill-opacity="0.498039">Generated by Python Call Graph v1.1.3</text> +<polygon fill="white" stroke="transparent" points="-4,4 -4,-444 1188,-444 1188,4 -4,4"/> +<text text-anchor="middle" x="592" y="-6.4" font-family="Verdana" font-size="7.00" fill="#000000" fill-opacity="0.498039">Generated by Python Call Graph v1.1.3</text> <g id="clust1" class="cluster"> <title>cluster___main__</title> -<polygon fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.800000" points="961,-361 961,-432 1045,-432 1045,-361 961,-361"/> -<text text-anchor="middle" x="1003" y="-420" font-family="Verdana" font-size="10.00">__main__</text> +<polygon fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.800000" points="1094,-361 1094,-432 1176,-432 1176,-361 1094,-361"/> +<text text-anchor="middle" x="1135" y="-420" font-family="Verdana" font-size="10.00">__main__</text> </g> <g id="clust2" class="cluster"> <title>cluster_pymatlib</title> @@ -23,266 +23,205 @@ <!-- __main__ --> <g id="node1" class="node"> <title>__main__</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1036.5,-405 969.5,-405 969.5,-369 1036.5,-369 1036.5,-405"/> -<text text-anchor="middle" x="1003" y="-393.4" font-family="Verdana" font-size="7.00" fill="#000000">__main__</text> -<text text-anchor="middle" x="1003" y="-385.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="1003" y="-377.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000000s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1168,-405 1102,-405 1102,-369 1168,-369 1168,-405"/> +<text text-anchor="middle" x="1135" y="-393.4" font-family="Verdana" font-size="7.00" fill="#000000">__main__</text> +<text text-anchor="middle" x="1135" y="-385.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1135" y="-377.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000000s</text> </g> -<!-- pymatlib.core.interpolators.InterpolationArrayContainer.__init__ --> -<g id="node5" class="node"> -<title>pymatlib.core.interpolators.InterpolationArrayContainer.__init__</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1032,-228 820,-228 820,-192 1032,-192 1032,-228"/> -<text text-anchor="middle" x="926" y="-216.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.InterpolationArrayContainer.__init__</text> -<text text-anchor="middle" x="926" y="-208.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 3</text> -<text text-anchor="middle" x="926" y="-200.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.009421s</text> +<!-- pymatlib.core.interpolators.prepare_interpolation_arrays --> +<g id="node3" class="node"> +<title>pymatlib.core.interpolators.prepare_interpolation_arrays</title> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="986.5,-148 783.5,-148 783.5,-112 986.5,-112 986.5,-148"/> +<text text-anchor="middle" x="885" y="-136.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.prepare_interpolation_arrays</text> +<text text-anchor="middle" x="885" y="-128.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 6</text> +<text text-anchor="middle" x="885" y="-120.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.013559s</text> +</g> +<!-- __main__->pymatlib.core.interpolators.prepare_interpolation_arrays --> +<g id="edge1" class="edge"> +<title>__main__->pymatlib.core.interpolators.prepare_interpolation_arrays</title> +<path fill="none" stroke="#b1b2b2" d="M1142.73,-368.9C1144.88,-363.31 1146.92,-357 1148,-351 1148.63,-347.5 1148.17,-346.55 1148,-343 1144.59,-273.66 1160.04,-237.95 1108,-192 1077.28,-164.88 1035.59,-149.69 996.58,-141.22"/> +<polygon fill="#b1b2b2" stroke="#b1b2b2" points="997.22,-137.78 986.72,-139.21 995.82,-144.64 997.22,-137.78"/> +<text text-anchor="middle" x="1147" y="-248.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> -<!-- __main__->pymatlib.core.interpolators.InterpolationArrayContainer.__init__ --> +<!-- pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer.__init__ --> +<g id="node8" class="node"> +<title>pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer.__init__</title> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="1099,-228 791,-228 791,-192 1099,-192 1099,-228"/> +<text text-anchor="middle" x="945" y="-216.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer.__init__</text> +<text text-anchor="middle" x="945" y="-208.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 5</text> +<text text-anchor="middle" x="945" y="-200.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.011329s</text> +</g> +<!-- __main__->pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer.__init__ --> <g id="edge2" class="edge"> -<title>__main__->pymatlib.core.interpolators.InterpolationArrayContainer.__init__</title> -<path fill="none" stroke="#b2b2b2" d="M1008.49,-368.7C1014.83,-345.38 1022.56,-303.19 1007,-272 999.05,-256.07 984.74,-243.2 970.33,-233.47"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="972.2,-230.51 961.89,-228.1 968.45,-236.42 972.2,-230.51"/> -<text text-anchor="middle" x="1018" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +<title>__main__->pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer.__init__</title> +<path fill="none" stroke="#b1b2b2" d="M1135.68,-368.68C1135.69,-344.16 1132.08,-299.31 1108,-272 1091.67,-253.48 1069.15,-240.56 1046.05,-231.56"/> +<polygon fill="#b1b2b2" stroke="#b1b2b2" points="1047.09,-228.21 1036.49,-228.06 1044.68,-234.79 1047.09,-228.21"/> +<text text-anchor="middle" x="1135" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> </g> -<!-- pymatlib.core.interpolators.from_material --> -<g id="node19" class="node"> -<title>pymatlib.core.interpolators.from_material</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="998,-308 854,-308 854,-272 998,-272 998,-308"/> -<text text-anchor="middle" x="926" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.from_material</text> -<text text-anchor="middle" x="926" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="926" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.005734s</text> +<!-- pymatlib.core.codegen.interpolation_array_container.from_material --> +<g id="node14" class="node"> +<title>pymatlib.core.codegen.interpolation_array_container.from_material</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="795,-308 557,-308 557,-272 795,-272 795,-308"/> +<text text-anchor="middle" x="676" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.codegen.interpolation_array_container.from_material</text> +<text text-anchor="middle" x="676" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="676" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.005928s</text> </g> -<!-- __main__->pymatlib.core.interpolators.from_material --> +<!-- __main__->pymatlib.core.codegen.interpolation_array_container.from_material --> <g id="edge3" class="edge"> -<title>__main__->pymatlib.core.interpolators.from_material</title> -<path fill="none" stroke="#b2b2b2" d="M988.88,-368.58C977.05,-353.98 960,-332.95 946.64,-316.46"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="949.05,-313.88 940.03,-308.31 943.61,-318.29 949.05,-313.88"/> -<text text-anchor="middle" x="975" y="-345.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<title>__main__->pymatlib.core.codegen.interpolation_array_container.from_material</title> +<path fill="none" stroke="#b2b2b2" d="M1101.84,-382.82C1041.93,-376.65 911.96,-361.29 805,-335 779.67,-328.77 752.23,-319.75 729.19,-311.49"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="730.21,-308.14 719.61,-308.01 727.82,-314.71 730.21,-308.14"/> +<text text-anchor="middle" x="878" y="-345.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> -<!-- pymatlib.core.interpolators.<module> --> +<!-- pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer --> <g id="node2" class="node"> -<title>pymatlib.core.interpolators.<module></title> -<polygon fill="#9996e5" stroke="#9996e5" points="684.5,-308 553.5,-308 553.5,-272 684.5,-272 684.5,-308"/> -<text text-anchor="middle" x="619" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.<module></text> -<text text-anchor="middle" x="619" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="619" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 5.402472s</text> -</g> -<!-- pymatlib.core.interpolators.InterpolationArrayContainer --> -<g id="node4" class="node"> -<title>pymatlib.core.interpolators.InterpolationArrayContainer</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="772,-228 586,-228 586,-192 772,-192 772,-228"/> -<text text-anchor="middle" x="679" y="-216.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.InterpolationArrayContainer</text> -<text text-anchor="middle" x="679" y="-208.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="679" y="-200.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000010s</text> -</g> -<!-- pymatlib.core.interpolators.<module>->pymatlib.core.interpolators.InterpolationArrayContainer --> -<g id="edge1" class="edge"> -<title>pymatlib.core.interpolators.<module>->pymatlib.core.interpolators.InterpolationArrayContainer</title> -<path fill="none" stroke="#b2b2b2" d="M632.32,-271.69C640.32,-261.29 650.64,-247.87 659.54,-236.29"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="662.4,-238.32 665.72,-228.26 656.85,-234.05 662.4,-238.32"/> -<text text-anchor="middle" x="652" y="-248.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> -</g> -<!-- pymatlib.core.data_handler.<module> --> -<g id="node3" class="node"> -<title>pymatlib.core.data_handler.<module></title> -<polygon fill="#9996e5" stroke="#9996e5" points="835.5,-308 702.5,-308 702.5,-272 835.5,-272 835.5,-308"/> -<text text-anchor="middle" x="769" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.data_handler.<module></text> -<text text-anchor="middle" x="769" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="769" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 5.395197s</text> -</g> -<!-- pymatlib.core.interpolators.prepare_interpolation_arrays --> -<g id="node6" class="node"> -<title>pymatlib.core.interpolators.prepare_interpolation_arrays</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="926.5,-148 737.5,-148 737.5,-112 926.5,-112 926.5,-148"/> -<text text-anchor="middle" x="832" y="-136.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.prepare_interpolation_arrays</text> -<text text-anchor="middle" x="832" y="-128.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 3</text> -<text text-anchor="middle" x="832" y="-120.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.009315s</text> -</g> -<!-- pymatlib.core.interpolators.InterpolationArrayContainer.__init__->pymatlib.core.interpolators.prepare_interpolation_arrays --> -<g id="edge4" class="edge"> -<title>pymatlib.core.interpolators.InterpolationArrayContainer.__init__->pymatlib.core.interpolators.prepare_interpolation_arrays</title> -<path fill="none" stroke="#b2b2b2" d="M905.14,-191.69C892.12,-180.88 875.17,-166.82 860.87,-154.95"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="862.73,-151.95 852.8,-148.26 858.26,-157.34 862.73,-151.95"/> -<text text-anchor="middle" x="883" y="-168.4" font-family="Verdana" font-size="7.00" fill="#000000">3</text> +<title>pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1098.5,-308 813.5,-308 813.5,-272 1098.5,-272 1098.5,-308"/> +<text text-anchor="middle" x="956" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer</text> +<text text-anchor="middle" x="956" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="956" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000010s</text> </g> <!-- pymatlib.core.data_handler.check_strictly_increasing --> -<g id="node7" class="node"> +<g id="node4" class="node"> <title>pymatlib.core.data_handler.check_strictly_increasing</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="923,-68 741,-68 741,-32 923,-32 923,-68"/> -<text text-anchor="middle" x="832" y="-56.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.data_handler.check_strictly_increasing</text> -<text text-anchor="middle" x="832" y="-48.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 6</text> -<text text-anchor="middle" x="832" y="-40.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.003896s</text> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="541.5,-68 356.5,-68 356.5,-32 541.5,-32 541.5,-68"/> +<text text-anchor="middle" x="449" y="-56.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.data_handler.check_strictly_increasing</text> +<text text-anchor="middle" x="449" y="-48.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 12</text> +<text text-anchor="middle" x="449" y="-40.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.004378s</text> </g> <!-- pymatlib.core.interpolators.prepare_interpolation_arrays->pymatlib.core.data_handler.check_strictly_increasing --> -<g id="edge5" class="edge"> +<g id="edge4" class="edge"> <title>pymatlib.core.interpolators.prepare_interpolation_arrays->pymatlib.core.data_handler.check_strictly_increasing</title> -<path fill="none" stroke="#b2b2b2" d="M832,-111.69C832,-101.89 832,-89.42 832,-78.33"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="835.5,-78.26 832,-68.26 828.5,-78.26 835.5,-78.26"/> -<text text-anchor="middle" x="834" y="-88.4" font-family="Verdana" font-size="7.00" fill="#000000">6</text> +<path fill="none" stroke="#b2b2b2" d="M789.86,-111.98C719.5,-99.39 623.8,-82.27 551.71,-69.37"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="552.16,-65.9 541.7,-67.58 550.92,-72.79 552.16,-65.9"/> +<text text-anchor="middle" x="684" y="-88.4" font-family="Verdana" font-size="7.00" fill="#000000">12</text> </g> <!-- pymatlib.core.data_handler.check_equidistant --> -<g id="node8" class="node"> +<g id="node5" class="node"> <title>pymatlib.core.data_handler.check_equidistant</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="540.5,-68 381.5,-68 381.5,-32 540.5,-32 540.5,-68"/> -<text text-anchor="middle" x="461" y="-56.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.data_handler.check_equidistant</text> -<text text-anchor="middle" x="461" y="-48.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 9</text> -<text text-anchor="middle" x="461" y="-40.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.002802s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="724.5,-68 559.5,-68 559.5,-32 724.5,-32 724.5,-68"/> +<text text-anchor="middle" x="642" y="-56.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.data_handler.check_equidistant</text> +<text text-anchor="middle" x="642" y="-48.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 12</text> +<text text-anchor="middle" x="642" y="-40.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.003425s</text> </g> <!-- pymatlib.core.interpolators.prepare_interpolation_arrays->pymatlib.core.data_handler.check_equidistant --> -<g id="edge6" class="edge"> +<g id="edge5" class="edge"> <title>pymatlib.core.interpolators.prepare_interpolation_arrays->pymatlib.core.data_handler.check_equidistant</title> -<path fill="none" stroke="#b2b2b2" d="M751.04,-111.98C691.87,-99.54 611.62,-82.67 550.53,-69.82"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="551.02,-66.35 540.51,-67.72 549.58,-73.2 551.02,-66.35"/> -<text text-anchor="middle" x="659" y="-88.4" font-family="Verdana" font-size="7.00" fill="#000000">3</text> +<path fill="none" stroke="#b2b2b2" d="M831.97,-111.98C794.64,-100 744.5,-83.9 705.1,-71.26"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="705.92,-67.84 695.33,-68.12 703.79,-74.51 705.92,-67.84"/> +<text text-anchor="middle" x="772" y="-88.4" font-family="Verdana" font-size="7.00" fill="#000000">6</text> </g> <!-- pymatlib.core.interpolators.E_eq_from_E_neq --> -<g id="node12" class="node"> +<g id="node6" class="node"> <title>pymatlib.core.interpolators.E_eq_from_E_neq</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1099,-68 941,-68 941,-32 1099,-32 1099,-68"/> -<text text-anchor="middle" x="1020" y="-56.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.E_eq_from_E_neq</text> -<text text-anchor="middle" x="1020" y="-48.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> -<text text-anchor="middle" x="1020" y="-40.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000497s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="907.5,-68 742.5,-68 742.5,-32 907.5,-32 907.5,-68"/> +<text text-anchor="middle" x="825" y="-56.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.E_eq_from_E_neq</text> +<text text-anchor="middle" x="825" y="-48.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="825" y="-40.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000867s</text> </g> <!-- pymatlib.core.interpolators.prepare_interpolation_arrays->pymatlib.core.interpolators.E_eq_from_E_neq --> -<g id="edge7" class="edge"> +<g id="edge6" class="edge"> <title>pymatlib.core.interpolators.prepare_interpolation_arrays->pymatlib.core.interpolators.E_eq_from_E_neq</title> -<path fill="none" stroke="#b2b2b2" d="M873.26,-111.88C901.54,-100.15 939.25,-84.5 969.35,-72.01"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="970.94,-75.14 978.84,-68.08 968.26,-68.68 970.94,-75.14"/> -<text text-anchor="middle" x="933" y="-88.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +<path fill="none" stroke="#b2b2b2" d="M871.68,-111.69C863.68,-101.29 853.36,-87.87 844.46,-76.29"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="847.15,-74.05 838.28,-68.26 841.6,-78.32 847.15,-74.05"/> +<text text-anchor="middle" x="858" y="-88.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> </g> <!-- pymatlib.core.interpolators.create_idx_mapping --> -<g id="node13" class="node"> +<g id="node7" class="node"> <title>pymatlib.core.interpolators.create_idx_mapping</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="723,-68 559,-68 559,-32 723,-32 723,-68"/> -<text text-anchor="middle" x="641" y="-56.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.create_idx_mapping</text> -<text text-anchor="middle" x="641" y="-48.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> -<text text-anchor="middle" x="641" y="-40.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.001825s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1098.5,-68 925.5,-68 925.5,-32 1098.5,-32 1098.5,-68"/> +<text text-anchor="middle" x="1012" y="-56.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.create_idx_mapping</text> +<text text-anchor="middle" x="1012" y="-48.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="1012" y="-40.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.003213s</text> </g> <!-- pymatlib.core.interpolators.prepare_interpolation_arrays->pymatlib.core.interpolators.create_idx_mapping --> -<g id="edge8" class="edge"> +<g id="edge7" class="edge"> <title>pymatlib.core.interpolators.prepare_interpolation_arrays->pymatlib.core.interpolators.create_idx_mapping</title> -<path fill="none" stroke="#b2b2b2" d="M790.08,-111.88C761.35,-100.15 723.04,-84.5 692.46,-72.01"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="693.4,-68.62 682.82,-68.08 690.75,-75.1 693.4,-68.62"/> -<text text-anchor="middle" x="744" y="-88.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +<path fill="none" stroke="#b2b2b2" d="M912.87,-111.88C931.32,-100.55 955.69,-85.58 975.65,-73.32"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="977.5,-76.29 984.19,-68.08 973.84,-70.33 977.5,-76.29"/> +<text text-anchor="middle" x="954" y="-88.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer.__init__->pymatlib.core.interpolators.prepare_interpolation_arrays --> +<g id="edge8" class="edge"> +<title>pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer.__init__->pymatlib.core.interpolators.prepare_interpolation_arrays</title> +<path fill="none" stroke="#b1b2b2" d="M931.68,-191.69C923.68,-181.29 913.36,-167.87 904.46,-156.29"/> +<polygon fill="#b1b2b2" stroke="#b1b2b2" points="907.15,-154.05 898.28,-148.26 901.6,-158.32 907.15,-154.05"/> +<text text-anchor="middle" x="918" y="-168.4" font-family="Verdana" font-size="7.00" fill="#000000">5</text> </g> -<!-- pymatlib.core.interpolators.InterpolationArrayContainer.generate --> +<!-- pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer.generate --> <g id="node9" class="node"> -<title>pymatlib.core.interpolators.InterpolationArrayContainer.generate</title> -<polygon fill="#e4e5e5" stroke="#e4e5e5" points="303.5,-308 88.5,-308 88.5,-272 303.5,-272 303.5,-308"/> -<text text-anchor="middle" x="196" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.InterpolationArrayContainer.generate</text> -<text text-anchor="middle" x="196" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 3</text> -<text text-anchor="middle" x="196" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.053865s</text> +<title>pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer.generate</title> +<polygon fill="#dfe4e5" stroke="#dfe4e5" points="347,-308 31,-308 31,-272 347,-272 347,-308"/> +<text text-anchor="middle" x="189" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer.generate</text> +<text text-anchor="middle" x="189" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 5</text> +<text text-anchor="middle" x="189" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.089051s</text> </g> -<!-- pymatlib.core.interpolators.InterpolationArrayContainer._generate_binary_search --> +<!-- pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer._generate_binary_search --> <g id="node10" class="node"> -<title>pymatlib.core.interpolators.InterpolationArrayContainer._generate_binary_search</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="282,-228 16,-228 16,-192 282,-192 282,-228"/> -<text text-anchor="middle" x="149" y="-216.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.InterpolationArrayContainer._generate_binary_search</text> -<text text-anchor="middle" x="149" y="-208.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 3</text> -<text text-anchor="middle" x="149" y="-200.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.013519s</text> +<title>pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer._generate_binary_search</title> +<polygon fill="#e3e5e5" stroke="#e3e5e5" points="772.5,-228 405.5,-228 405.5,-192 772.5,-192 772.5,-228"/> +<text text-anchor="middle" x="589" y="-216.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer._generate_binary_search</text> +<text text-anchor="middle" x="589" y="-208.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 5</text> +<text text-anchor="middle" x="589" y="-200.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.023988s</text> </g> -<!-- pymatlib.core.interpolators.InterpolationArrayContainer.generate->pymatlib.core.interpolators.InterpolationArrayContainer._generate_binary_search --> +<!-- pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer.generate->pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer._generate_binary_search --> <g id="edge9" class="edge"> -<title>pymatlib.core.interpolators.InterpolationArrayContainer.generate->pymatlib.core.interpolators.InterpolationArrayContainer._generate_binary_search</title> -<path fill="none" stroke="#b2b2b2" d="M185.57,-271.69C179.42,-261.49 171.53,-248.39 164.65,-236.97"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="167.56,-235.02 159.4,-228.26 161.56,-238.63 167.56,-235.02"/> -<text text-anchor="middle" x="175" y="-248.4" font-family="Verdana" font-size="7.00" fill="#000000">3</text> +<title>pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer.generate->pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer._generate_binary_search</title> +<path fill="none" stroke="#b1b2b2" d="M276.29,-271.98C339.81,-259.59 425.84,-242.82 491.59,-229.99"/> +<polygon fill="#b1b2b2" stroke="#b1b2b2" points="492.41,-233.4 501.55,-228.05 491.07,-226.53 492.41,-233.4"/> +<text text-anchor="middle" x="402" y="-248.4" font-family="Verdana" font-size="7.00" fill="#000000">5</text> </g> -<!-- pymatlib.core.interpolators.InterpolationArrayContainer._generate_double_lookup --> -<g id="node14" class="node"> -<title>pymatlib.core.interpolators.InterpolationArrayContainer._generate_double_lookup</title> -<polygon fill="#e4e5e5" stroke="#e4e5e5" points="567.5,-228 300.5,-228 300.5,-192 567.5,-192 567.5,-228"/> -<text text-anchor="middle" x="434" y="-216.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.InterpolationArrayContainer._generate_double_lookup</text> -<text text-anchor="middle" x="434" y="-208.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> -<text text-anchor="middle" x="434" y="-200.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.032489s</text> +<!-- pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer._generate_double_lookup --> +<g id="node12" class="node"> +<title>pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer._generate_double_lookup</title> +<polygon fill="#e1e5e5" stroke="#e1e5e5" points="387.5,-228 16.5,-228 16.5,-192 387.5,-192 387.5,-228"/> +<text text-anchor="middle" x="202" y="-216.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer._generate_double_lookup</text> +<text text-anchor="middle" x="202" y="-208.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 3</text> +<text text-anchor="middle" x="202" y="-200.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.054860s</text> </g> -<!-- pymatlib.core.interpolators.InterpolationArrayContainer.generate->pymatlib.core.interpolators.InterpolationArrayContainer._generate_double_lookup --> +<!-- pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer.generate->pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer._generate_double_lookup --> <g id="edge10" class="edge"> -<title>pymatlib.core.interpolators.InterpolationArrayContainer.generate->pymatlib.core.interpolators.InterpolationArrayContainer._generate_double_lookup</title> -<path fill="none" stroke="#b2b2b2" d="M247.94,-271.98C284.5,-260 333.61,-243.9 372.2,-231.26"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="373.35,-234.56 381.76,-228.12 371.17,-227.91 373.35,-234.56"/> -<text text-anchor="middle" x="324" y="-248.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +<title>pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer.generate->pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer._generate_double_lookup</title> +<path fill="none" stroke="#afb2b2" d="M191.89,-271.69C193.52,-261.89 195.6,-249.42 197.44,-238.33"/> +<polygon fill="#afb2b2" stroke="#afb2b2" points="200.93,-238.7 199.12,-228.26 194.03,-237.55 200.93,-238.7"/> +<text text-anchor="middle" x="197" y="-248.4" font-family="Verdana" font-size="7.00" fill="#000000">3</text> </g> -<!-- pymatlib.core.interpolators.<genexpr> --> +<!-- pymatlib.core.codegen.interpolation_array_container.<genexpr> --> <g id="node11" class="node"> -<title>pymatlib.core.interpolators.<genexpr></title> -<polygon fill="#9998e5" stroke="#9998e5" points="216,-148 82,-148 82,-112 216,-112 216,-148"/> -<text text-anchor="middle" x="149" y="-136.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.<genexpr></text> -<text text-anchor="middle" x="149" y="-128.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4,240</text> -<text text-anchor="middle" x="149" y="-120.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.011805s</text> +<title>pymatlib.core.codegen.interpolation_array_container.<genexpr></title> +<polygon fill="#9998e5" stroke="#9998e5" points="474.5,-148 247.5,-148 247.5,-112 474.5,-112 474.5,-148"/> +<text text-anchor="middle" x="361" y="-136.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.codegen.interpolation_array_container.<genexpr></text> +<text text-anchor="middle" x="361" y="-128.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4,282</text> +<text text-anchor="middle" x="361" y="-120.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.011877s</text> </g> -<!-- pymatlib.core.interpolators.InterpolationArrayContainer._generate_binary_search->pymatlib.core.interpolators.<genexpr> --> +<!-- pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer._generate_binary_search->pymatlib.core.codegen.interpolation_array_container.<genexpr> --> <g id="edge11" class="edge"> -<title>pymatlib.core.interpolators.InterpolationArrayContainer._generate_binary_search->pymatlib.core.interpolators.<genexpr></title> -<path fill="none" stroke="#a2aeb2" d="M149,-191.69C149,-181.89 149,-169.42 149,-158.33"/> -<polygon fill="#a2aeb2" stroke="#a2aeb2" points="152.5,-158.26 149,-148.26 145.5,-158.26 152.5,-158.26"/> -<text text-anchor="middle" x="156.5" y="-168.4" font-family="Verdana" font-size="7.00" fill="#000000">1104</text> +<title>pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer._generate_binary_search->pymatlib.core.codegen.interpolation_array_container.<genexpr></title> +<path fill="none" stroke="#a2aeb2" d="M539.25,-191.98C504.36,-180.05 457.57,-164.04 420.68,-151.42"/> +<polygon fill="#a2aeb2" stroke="#a2aeb2" points="421.64,-148.04 411.04,-148.12 419.37,-154.67 421.64,-148.04"/> +<text text-anchor="middle" x="489" y="-168.4" font-family="Verdana" font-size="7.00" fill="#000000">1124</text> </g> -<!-- pymatlib.core.interpolators.InterpolationArrayContainer._generate_double_lookup->pymatlib.core.interpolators.<genexpr> --> +<!-- pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer._generate_double_lookup->pymatlib.core.codegen.interpolation_array_container.<genexpr> --> <g id="edge12" class="edge"> -<title>pymatlib.core.interpolators.InterpolationArrayContainer._generate_double_lookup->pymatlib.core.interpolators.<genexpr></title> -<path fill="none" stroke="#8691b2" d="M371.81,-191.98C327.46,-179.84 267.72,-163.49 221.25,-150.77"/> -<polygon fill="#8691b2" stroke="#8691b2" points="222.12,-147.38 211.55,-148.12 220.27,-154.14 222.12,-147.38"/> -<text text-anchor="middle" x="308" y="-168.4" font-family="Verdana" font-size="7.00" fill="#000000">3136</text> +<title>pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer._generate_double_lookup->pymatlib.core.codegen.interpolation_array_container.<genexpr></title> +<path fill="none" stroke="#8591b2" d="M236.89,-191.88C260.5,-180.3 291.88,-164.91 317.17,-152.5"/> +<polygon fill="#8591b2" stroke="#8591b2" points="318.75,-155.62 326.19,-148.08 315.67,-149.34 318.75,-155.62"/> +<text text-anchor="middle" x="294" y="-168.4" font-family="Verdana" font-size="7.00" fill="#000000">3158</text> </g> <!-- pymatlib.core.data_handler.read_data_from_file --> -<g id="node15" class="node"> +<g id="node13" class="node"> <title>pymatlib.core.data_handler.read_data_from_file</title> -<polygon fill="#c1d4e5" stroke="#c1d4e5" points="502,-308 338,-308 338,-272 502,-272 502,-308"/> -<text text-anchor="middle" x="420" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.data_handler.read_data_from_file</text> -<text text-anchor="middle" x="420" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> -<text text-anchor="middle" x="420" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 2.467327s</text> +<polygon fill="#e54ce5" stroke="#e54ce5" points="538.5,-308 365.5,-308 365.5,-272 538.5,-272 538.5,-308"/> +<text text-anchor="middle" x="452" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.data_handler.read_data_from_file</text> +<text text-anchor="middle" x="452" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> +<text text-anchor="middle" x="452" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 2.229705s</text> </g> -<!-- pymatlib.core.interpolators.interpolate_property --> -<g id="node16" class="node"> -<title>pymatlib.core.interpolators.interpolate_property</title> -<polygon fill="#e54ce5" stroke="#e54ce5" points="397.5,-148 234.5,-148 234.5,-112 397.5,-112 397.5,-148"/> -<text text-anchor="middle" x="316" y="-136.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.interpolate_property</text> -<text text-anchor="middle" x="316" y="-128.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 6</text> -<text text-anchor="middle" x="316" y="-120.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 10.489902s</text> -</g> -<!-- pymatlib.core.interpolators.interpolate_property->pymatlib.core.data_handler.check_equidistant --> +<!-- pymatlib.core.codegen.interpolation_array_container.from_material->pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer.__init__ --> <g id="edge13" class="edge"> -<title>pymatlib.core.interpolators.interpolate_property->pymatlib.core.data_handler.check_equidistant</title> -<path fill="none" stroke="#b2b2b2" d="M347.82,-111.88C369.16,-100.4 397.46,-85.18 420.42,-72.83"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="422.1,-75.9 429.25,-68.08 418.79,-69.73 422.1,-75.9"/> -<text text-anchor="middle" x="394" y="-88.4" font-family="Verdana" font-size="7.00" fill="#000000">6</text> -</g> -<!-- pymatlib.core.interpolators.interpolate_lookup --> -<g id="node17" class="node"> -<title>pymatlib.core.interpolators.interpolate_lookup</title> -<polygon fill="#dc51e5" stroke="#dc51e5" points="174,-68 16,-68 16,-32 174,-32 174,-68"/> -<text text-anchor="middle" x="95" y="-56.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.interpolate_lookup</text> -<text text-anchor="middle" x="95" y="-48.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> -<text text-anchor="middle" x="95" y="-40.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 10.165162s</text> -</g> -<!-- pymatlib.core.interpolators.interpolate_property->pymatlib.core.interpolators.interpolate_lookup --> -<g id="edge14" class="edge"> -<title>pymatlib.core.interpolators.interpolate_property->pymatlib.core.interpolators.interpolate_lookup</title> -<path fill="none" stroke="#ab3fb2" d="M267.77,-111.98C234.11,-100.1 188.99,-84.17 153.3,-71.58"/> -<polygon fill="#ab3fb2" stroke="#ab3fb2" points="154.1,-68.15 143.5,-68.12 151.77,-74.75 154.1,-68.15"/> -<text text-anchor="middle" x="214" y="-88.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> -</g> -<!-- pymatlib.core.interpolators.interpolate_equidistant --> -<g id="node18" class="node"> -<title>pymatlib.core.interpolators.interpolate_equidistant</title> -<polygon fill="#e0e5e5" stroke="#e0e5e5" points="363.5,-68 192.5,-68 192.5,-32 363.5,-32 363.5,-68"/> -<text text-anchor="middle" x="278" y="-56.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.interpolate_equidistant</text> -<text text-anchor="middle" x="278" y="-48.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> -<text text-anchor="middle" x="278" y="-40.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.321995s</text> -</g> -<!-- pymatlib.core.interpolators.interpolate_property->pymatlib.core.interpolators.interpolate_equidistant --> -<g id="edge15" class="edge"> -<title>pymatlib.core.interpolators.interpolate_property->pymatlib.core.interpolators.interpolate_equidistant</title> -<path fill="none" stroke="#aeb2b2" d="M307.57,-111.69C302.65,-101.59 296.34,-88.65 290.82,-77.31"/> -<polygon fill="#aeb2b2" stroke="#aeb2b2" points="293.94,-75.72 286.41,-68.26 287.64,-78.79 293.94,-75.72"/> -<text text-anchor="middle" x="300" y="-88.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> -</g> -<!-- pymatlib.core.interpolators.from_material->pymatlib.core.interpolators.InterpolationArrayContainer.__init__ --> -<g id="edge16" class="edge"> -<title>pymatlib.core.interpolators.from_material->pymatlib.core.interpolators.InterpolationArrayContainer.__init__</title> -<path fill="none" stroke="#b2b2b2" d="M926,-271.69C926,-261.89 926,-249.42 926,-238.33"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="929.5,-238.26 926,-228.26 922.5,-238.26 929.5,-238.26"/> -<text text-anchor="middle" x="928" y="-248.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<title>pymatlib.core.codegen.interpolation_array_container.from_material->pymatlib.core.codegen.interpolation_array_container.InterpolationArrayContainer.__init__</title> +<path fill="none" stroke="#b1b2b2" d="M734.7,-271.98C776.38,-259.89 832.48,-243.63 876.25,-230.93"/> +<polygon fill="#b1b2b2" stroke="#b1b2b2" points="877.33,-234.27 885.96,-228.12 875.38,-227.54 877.33,-234.27"/> +<text text-anchor="middle" x="820" y="-248.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> </g> </svg> diff --git a/apps/callgraph_images/yaml_parser_callgraph.svg b/apps/callgraph_images/yaml_parser_callgraph.svg index 173ba12d3229b32741ab19ab3df5158a4893e9d5..86fa5b7c6a459384bd2557bb546dd051ed3686b7 100644 --- a/apps/callgraph_images/yaml_parser_callgraph.svg +++ b/apps/callgraph_images/yaml_parser_callgraph.svg @@ -1,1191 +1,1176 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.43.0 (0) +<!-- Generated by graphviz version 2.50.0 (0) --> <!-- Title: G Pages: 1 --> -<svg width="2667pt" height="984pt" - viewBox="0.00 0.00 2667.00 984.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg width="2738pt" height="984pt" + viewBox="0.00 0.00 2738.00 984.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 980)"> <title>G</title> -<polygon fill="white" stroke="transparent" points="-4,4 -4,-980 2663,-980 2663,4 -4,4"/> -<text text-anchor="middle" x="1329.5" y="-6.4" font-family="Verdana" font-size="7.00" fill="#000000" fill-opacity="0.498039">Generated by Python Call Graph v1.1.3</text> +<polygon fill="white" stroke="transparent" points="-4,4 -4,-980 2734,-980 2734,4 -4,4"/> +<text text-anchor="middle" x="1365" y="-6.4" font-family="Verdana" font-size="7.00" fill="#000000" fill-opacity="0.498039">Generated by Python Call Graph v1.1.3</text> <g id="clust1" class="cluster"> <title>cluster___main__</title> -<polygon fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.800000" points="816,-897 816,-968 900,-968 900,-897 816,-897"/> -<text text-anchor="middle" x="858" y="-956" font-family="Verdana" font-size="10.00">__main__</text> +<polygon fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.800000" points="970,-897 970,-968 1052,-968 1052,-897 970,-897"/> +<text text-anchor="middle" x="1011" y="-956" font-family="Verdana" font-size="10.00">__main__</text> </g> <g id="clust2" class="cluster"> <title>cluster_pymatlib</title> -<polygon fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.800000" points="8,-24 8,-871 2651,-871 2651,-24 8,-24"/> -<text text-anchor="middle" x="1329.5" y="-859" font-family="Verdana" font-size="10.00">pymatlib</text> +<polygon fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.800000" points="8,-24 8,-871 2722,-871 2722,-24 8,-24"/> +<text text-anchor="middle" x="1365" y="-859" font-family="Verdana" font-size="10.00">pymatlib</text> </g> <!-- __main__ --> <g id="node1" class="node"> <title>__main__</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="891.5,-941 824.5,-941 824.5,-905 891.5,-905 891.5,-941"/> -<text text-anchor="middle" x="858" y="-929.4" font-family="Verdana" font-size="7.00" fill="#000000">__main__</text> -<text text-anchor="middle" x="858" y="-921.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="858" y="-913.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000000s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1044,-941 978,-941 978,-905 1044,-905 1044,-941"/> +<text text-anchor="middle" x="1011" y="-929.4" font-family="Verdana" font-size="7.00" fill="#000000">__main__</text> +<text text-anchor="middle" x="1011" y="-921.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1011" y="-913.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000000s</text> </g> <!-- pymatlib.core.yaml_parser.create_alloy_from_yaml --> -<g id="node18" class="node"> +<g id="node17" class="node"> <title>pymatlib.core.yaml_parser.create_alloy_from_yaml</title> -<polygon fill="#e54ce5" stroke="#e54ce5" points="946,-844 770,-844 770,-808 946,-808 946,-844"/> -<text text-anchor="middle" x="858" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.create_alloy_from_yaml</text> -<text text-anchor="middle" x="858" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="858" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 228.137130s</text> +<polygon fill="#e54ce5" stroke="#e54ce5" points="1101,-844 921,-844 921,-808 1101,-808 1101,-844"/> +<text text-anchor="middle" x="1011" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.create_alloy_from_yaml</text> +<text text-anchor="middle" x="1011" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1011" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 219.099043s</text> </g> <!-- __main__->pymatlib.core.yaml_parser.create_alloy_from_yaml --> -<g id="edge10" class="edge"> +<g id="edge9" class="edge"> <title>__main__->pymatlib.core.yaml_parser.create_alloy_from_yaml</title> -<path fill="none" stroke="#b23bb2" d="M858,-904.58C858,-890.65 858,-870.86 858,-854.76"/> -<polygon fill="#b23bb2" stroke="#b23bb2" points="861.5,-854.31 858,-844.31 854.5,-854.31 861.5,-854.31"/> -<text text-anchor="middle" x="860" y="-881.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b23bb2" d="M1011,-904.58C1011,-890.65 1011,-870.86 1011,-854.76"/> +<polygon fill="#b23bb2" stroke="#b23bb2" points="1014.5,-854.31 1011,-844.31 1007.5,-854.31 1014.5,-854.31"/> +<text text-anchor="middle" x="1013" y="-881.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.yaml_parser.<module> --> <g id="node2" class="node"> <title>pymatlib.core.yaml_parser.<module></title> -<polygon fill="#e0e5e5" stroke="#e0e5e5" points="2538.5,-844 2407.5,-844 2407.5,-808 2538.5,-808 2538.5,-844"/> -<text text-anchor="middle" x="2473" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.<module></text> -<text text-anchor="middle" x="2473" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="2473" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 6.704116s</text> +<polygon fill="#e0e5e5" stroke="#e0e5e5" points="2617,-844 2479,-844 2479,-808 2617,-808 2617,-844"/> +<text text-anchor="middle" x="2548" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.<module></text> +<text text-anchor="middle" x="2548" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="2548" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 6.615069s</text> </g> <!-- pymatlib.core.yaml_parser.PropertyType --> -<g id="node16" class="node"> +<g id="node15" class="node"> <title>pymatlib.core.yaml_parser.PropertyType</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2458.5,-764 2315.5,-764 2315.5,-728 2458.5,-728 2458.5,-764"/> -<text text-anchor="middle" x="2387" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.PropertyType</text> -<text text-anchor="middle" x="2387" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="2387" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000332s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2714,-764 2564,-764 2564,-728 2714,-728 2714,-764"/> +<text text-anchor="middle" x="2639" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.PropertyType</text> +<text text-anchor="middle" x="2639" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="2639" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000334s</text> </g> <!-- pymatlib.core.yaml_parser.<module>->pymatlib.core.yaml_parser.PropertyType --> -<g id="edge8" class="edge"> +<g id="edge7" class="edge"> <title>pymatlib.core.yaml_parser.<module>->pymatlib.core.yaml_parser.PropertyType</title> -<path fill="none" stroke="#b2b2b2" d="M2453.91,-807.69C2442.11,-796.98 2426.79,-783.08 2413.78,-771.29"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2415.79,-768.39 2406.03,-764.26 2411.09,-773.57 2415.79,-768.39"/> -<text text-anchor="middle" x="2434" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M2568.2,-807.69C2580.8,-796.88 2597.21,-782.82 2611.05,-770.95"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2613.55,-773.43 2618.86,-764.26 2608.99,-768.11 2613.55,-773.43"/> +<text text-anchor="middle" x="2598" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser --> -<g id="node17" class="node"> +<g id="node16" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2643.5,-764 2476.5,-764 2476.5,-728 2643.5,-728 2643.5,-764"/> -<text text-anchor="middle" x="2560" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser</text> -<text text-anchor="middle" x="2560" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="2560" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.001782s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2546,-764 2372,-764 2372,-728 2546,-728 2546,-764"/> +<text text-anchor="middle" x="2459" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser</text> +<text text-anchor="middle" x="2459" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="2459" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.001887s</text> </g> <!-- pymatlib.core.yaml_parser.<module>->pymatlib.core.yaml_parser.MaterialConfigParser --> -<g id="edge9" class="edge"> +<g id="edge8" class="edge"> <title>pymatlib.core.yaml_parser.<module>->pymatlib.core.yaml_parser.MaterialConfigParser</title> -<path fill="none" stroke="#b2b2b2" d="M2492.31,-807.69C2504.36,-796.88 2520.04,-782.82 2533.28,-770.95"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2535.64,-773.54 2540.75,-764.26 2530.96,-768.33 2535.64,-773.54"/> -<text text-anchor="middle" x="2521" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M2528.25,-807.69C2515.92,-796.88 2499.87,-782.82 2486.33,-770.95"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2488.52,-768.22 2478.7,-764.26 2483.91,-773.49 2488.52,-768.22"/> +<text text-anchor="middle" x="2508" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.alloy.<module> --> <g id="node3" class="node"> <title>pymatlib.core.alloy.<module></title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2113.5,-844 2006.5,-844 2006.5,-808 2113.5,-808 2113.5,-844"/> -<text text-anchor="middle" x="2060" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.alloy.<module></text> -<text text-anchor="middle" x="2060" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="2060" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.085522s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2159.5,-844 2046.5,-844 2046.5,-808 2159.5,-808 2159.5,-844"/> +<text text-anchor="middle" x="2103" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.alloy.<module></text> +<text text-anchor="middle" x="2103" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="2103" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.042643s</text> </g> <!-- pymatlib.core.alloy.AlloyCompositionError --> <g id="node9" class="node"> <title>pymatlib.core.alloy.AlloyCompositionError</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2133,-764 1987,-764 1987,-728 2133,-728 2133,-764"/> -<text text-anchor="middle" x="2060" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.alloy.AlloyCompositionError</text> -<text text-anchor="middle" x="2060" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="2060" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000004s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2180,-764 2026,-764 2026,-728 2180,-728 2180,-764"/> +<text text-anchor="middle" x="2103" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.alloy.AlloyCompositionError</text> +<text text-anchor="middle" x="2103" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="2103" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000003s</text> </g> <!-- pymatlib.core.alloy.<module>->pymatlib.core.alloy.AlloyCompositionError --> <g id="edge4" class="edge"> <title>pymatlib.core.alloy.<module>->pymatlib.core.alloy.AlloyCompositionError</title> -<path fill="none" stroke="#b2b2b2" d="M2060,-807.69C2060,-797.89 2060,-785.42 2060,-774.33"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2063.5,-774.26 2060,-764.26 2056.5,-774.26 2063.5,-774.26"/> -<text text-anchor="middle" x="2062" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M2103,-807.69C2103,-797.89 2103,-785.42 2103,-774.33"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2106.5,-774.26 2103,-764.26 2099.5,-774.26 2106.5,-774.26"/> +<text text-anchor="middle" x="2105" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.alloy.AlloyTemperatureError --> <g id="node10" class="node"> <title>pymatlib.core.alloy.AlloyTemperatureError</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2297,-764 2151,-764 2151,-728 2297,-728 2297,-764"/> -<text text-anchor="middle" x="2224" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.alloy.AlloyTemperatureError</text> -<text text-anchor="middle" x="2224" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="2224" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000003s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2353.5,-764 2198.5,-764 2198.5,-728 2353.5,-728 2353.5,-764"/> +<text text-anchor="middle" x="2276" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.alloy.AlloyTemperatureError</text> +<text text-anchor="middle" x="2276" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="2276" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000003s</text> </g> <!-- pymatlib.core.alloy.<module>->pymatlib.core.alloy.AlloyTemperatureError --> <g id="edge5" class="edge"> <title>pymatlib.core.alloy.<module>->pymatlib.core.alloy.AlloyTemperatureError</title> -<path fill="none" stroke="#b2b2b2" d="M2095.99,-807.88C2120.34,-796.3 2152.7,-780.91 2178.79,-768.5"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2180.57,-771.53 2188.09,-764.08 2177.56,-765.21 2180.57,-771.53"/> -<text text-anchor="middle" x="2148" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M2140.97,-807.88C2166.77,-796.25 2201.09,-780.78 2228.67,-768.34"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2230.45,-771.38 2238.12,-764.08 2227.57,-765 2230.45,-771.38"/> +<text text-anchor="middle" x="2196" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.alloy.Alloy --> <g id="node11" class="node"> <title>pymatlib.core.alloy.Alloy</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1969,-764 1877,-764 1877,-728 1969,-728 1969,-764"/> -<text text-anchor="middle" x="1923" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.alloy.Alloy</text> -<text text-anchor="middle" x="1923" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="1923" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000410s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2007.5,-764 1912.5,-764 1912.5,-728 2007.5,-728 2007.5,-764"/> +<text text-anchor="middle" x="1960" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.alloy.Alloy</text> +<text text-anchor="middle" x="1960" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1960" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000550s</text> </g> <!-- pymatlib.core.alloy.<module>->pymatlib.core.alloy.Alloy --> <g id="edge6" class="edge"> <title>pymatlib.core.alloy.<module>->pymatlib.core.alloy.Alloy</title> -<path fill="none" stroke="#b2b2b2" d="M2029.93,-807.88C2009.95,-796.5 1983.51,-781.45 1961.92,-769.16"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1963.42,-765.98 1953,-764.08 1959.95,-772.07 1963.42,-765.98"/> -<text text-anchor="middle" x="1997" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M2071.62,-807.88C2050.66,-796.45 2022.91,-781.31 2000.32,-768.99"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2001.76,-765.79 1991.31,-764.08 1998.41,-771.94 2001.76,-765.79"/> +<text text-anchor="middle" x="2037" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.elements.<module> --> <g id="node4" class="node"> <title>pymatlib.core.elements.<module></title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1847,-844 1725,-844 1725,-808 1847,-808 1847,-844"/> -<text text-anchor="middle" x="1786" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.elements.<module></text> -<text text-anchor="middle" x="1786" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="1786" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.018106s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1883,-844 1755,-844 1755,-808 1883,-808 1883,-844"/> +<text text-anchor="middle" x="1819" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.elements.<module></text> +<text text-anchor="middle" x="1819" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1819" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.009074s</text> </g> <!-- pymatlib.core.elements.ChemicalElement --> <g id="node5" class="node"> <title>pymatlib.core.elements.ChemicalElement</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1859,-764 1713,-764 1713,-728 1859,-728 1859,-764"/> -<text text-anchor="middle" x="1786" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.elements.ChemicalElement</text> -<text text-anchor="middle" x="1786" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="1786" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000012s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1894,-764 1744,-764 1744,-728 1894,-728 1894,-764"/> +<text text-anchor="middle" x="1819" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.elements.ChemicalElement</text> +<text text-anchor="middle" x="1819" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1819" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000006s</text> </g> <!-- pymatlib.core.elements.<module>->pymatlib.core.elements.ChemicalElement --> <g id="edge1" class="edge"> <title>pymatlib.core.elements.<module>->pymatlib.core.elements.ChemicalElement</title> -<path fill="none" stroke="#b2b2b2" d="M1786,-807.69C1786,-797.89 1786,-785.42 1786,-774.33"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1789.5,-774.26 1786,-764.26 1782.5,-774.26 1789.5,-774.26"/> -<text text-anchor="middle" x="1788" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M1819,-807.69C1819,-797.89 1819,-785.42 1819,-774.33"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1822.5,-774.26 1819,-764.26 1815.5,-774.26 1822.5,-774.26"/> +<text text-anchor="middle" x="1821" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.typedefs.<module> --> <g id="node6" class="node"> <title>pymatlib.core.typedefs.<module></title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1609,-844 1489,-844 1489,-808 1609,-808 1609,-844"/> -<text text-anchor="middle" x="1549" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.typedefs.<module></text> -<text text-anchor="middle" x="1549" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="1549" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.032934s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1721.5,-844 1594.5,-844 1594.5,-808 1721.5,-808 1721.5,-844"/> +<text text-anchor="middle" x="1658" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.typedefs.<module></text> +<text text-anchor="middle" x="1658" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1658" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.015220s</text> </g> <!-- pymatlib.core.typedefs.Assignment --> <g id="node7" class="node"> <title>pymatlib.core.typedefs.Assignment</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1535.5,-764 1408.5,-764 1408.5,-728 1535.5,-728 1535.5,-764"/> -<text text-anchor="middle" x="1472" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.typedefs.Assignment</text> -<text text-anchor="middle" x="1472" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="1472" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000512s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1726,-764 1594,-764 1594,-728 1726,-728 1726,-764"/> +<text text-anchor="middle" x="1660" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.typedefs.Assignment</text> +<text text-anchor="middle" x="1660" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1660" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000225s</text> </g> <!-- pymatlib.core.typedefs.<module>->pymatlib.core.typedefs.Assignment --> <g id="edge2" class="edge"> <title>pymatlib.core.typedefs.<module>->pymatlib.core.typedefs.Assignment</title> -<path fill="none" stroke="#b2b2b2" d="M1531.91,-807.69C1521.44,-797.09 1507.88,-783.35 1496.31,-771.62"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1498.56,-768.92 1489.04,-764.26 1493.58,-773.84 1498.56,-768.92"/> -<text text-anchor="middle" x="1514" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M1658.44,-807.69C1658.7,-797.89 1659.01,-785.42 1659.3,-774.33"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1662.8,-774.35 1659.56,-764.26 1655.8,-774.17 1662.8,-774.35"/> +<text text-anchor="middle" x="1661" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.typedefs.MaterialProperty --> <g id="node8" class="node"> <title>pymatlib.core.typedefs.MaterialProperty</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1694.5,-764 1553.5,-764 1553.5,-728 1694.5,-728 1694.5,-764"/> -<text text-anchor="middle" x="1624" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.typedefs.MaterialProperty</text> -<text text-anchor="middle" x="1624" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="1624" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.001233s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1575.5,-764 1426.5,-764 1426.5,-728 1575.5,-728 1575.5,-764"/> +<text text-anchor="middle" x="1501" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.typedefs.MaterialProperty</text> +<text text-anchor="middle" x="1501" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1501" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000609s</text> </g> <!-- pymatlib.core.typedefs.<module>->pymatlib.core.typedefs.MaterialProperty --> <g id="edge3" class="edge"> <title>pymatlib.core.typedefs.<module>->pymatlib.core.typedefs.MaterialProperty</title> -<path fill="none" stroke="#b2b2b2" d="M1565.64,-807.69C1575.84,-797.09 1589.05,-783.35 1600.32,-771.62"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1602.99,-773.9 1607.4,-764.26 1597.95,-769.04 1602.99,-773.9"/> -<text text-anchor="middle" x="1590" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M1623.55,-807.88C1600.33,-796.35 1569.53,-781.04 1544.61,-768.67"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1545.89,-765.39 1535.37,-764.08 1542.77,-771.66 1545.89,-765.39"/> +<text text-anchor="middle" x="1586" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.interpolators.<module> --> <g id="node12" class="node"> <title>pymatlib.core.interpolators.<module></title> -<polygon fill="#e1e5e5" stroke="#e1e5e5" points="1381.5,-844 1250.5,-844 1250.5,-808 1381.5,-808 1381.5,-844"/> -<text text-anchor="middle" x="1316" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.<module></text> -<text text-anchor="middle" x="1316" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="1316" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 6.434024s</text> -</g> -<!-- pymatlib.core.interpolators.InterpolationArrayContainer --> -<g id="node15" class="node"> -<title>pymatlib.core.interpolators.InterpolationArrayContainer</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1390,-764 1204,-764 1204,-728 1390,-728 1390,-764"/> -<text text-anchor="middle" x="1297" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.InterpolationArrayContainer</text> -<text text-anchor="middle" x="1297" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="1297" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000011s</text> -</g> -<!-- pymatlib.core.interpolators.<module>->pymatlib.core.interpolators.InterpolationArrayContainer --> -<g id="edge7" class="edge"> -<title>pymatlib.core.interpolators.<module>->pymatlib.core.interpolators.InterpolationArrayContainer</title> -<path fill="none" stroke="#b2b2b2" d="M1311.78,-807.69C1309.37,-797.79 1306.3,-785.16 1303.58,-773.99"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1306.97,-773.15 1301.2,-764.26 1300.17,-774.81 1306.97,-773.15"/> -<text text-anchor="middle" x="1309" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<polygon fill="#e0e5e5" stroke="#e0e5e5" points="1575.5,-844 1434.5,-844 1434.5,-808 1575.5,-808 1575.5,-844"/> +<text text-anchor="middle" x="1505" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.<module></text> +<text text-anchor="middle" x="1505" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1505" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 6.397722s</text> </g> <!-- pymatlib.core.models.<module> --> <g id="node13" class="node"> <title>pymatlib.core.models.<module></title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1232,-844 1116,-844 1116,-808 1232,-808 1232,-844"/> -<text text-anchor="middle" x="1174" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models.<module></text> -<text text-anchor="middle" x="1174" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="1174" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.002604s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1414.5,-844 1291.5,-844 1291.5,-808 1414.5,-808 1414.5,-844"/> +<text text-anchor="middle" x="1353" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models.<module></text> +<text text-anchor="middle" x="1353" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1353" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.001180s</text> </g> <!-- pymatlib.core.data_handler.<module> --> <g id="node14" class="node"> <title>pymatlib.core.data_handler.<module></title> -<polygon fill="#e1e5e5" stroke="#e1e5e5" points="1097.5,-844 964.5,-844 964.5,-808 1097.5,-808 1097.5,-844"/> -<text text-anchor="middle" x="1031" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.data_handler.<module></text> -<text text-anchor="middle" x="1031" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="1031" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 6.189607s</text> +<polygon fill="#e0e5e5" stroke="#e0e5e5" points="1269.5,-844 1128.5,-844 1128.5,-808 1269.5,-808 1269.5,-844"/> +<text text-anchor="middle" x="1199" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.data_handler.<module></text> +<text text-anchor="middle" x="1199" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1199" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 6.389329s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser.__init__ --> -<g id="node19" class="node"> +<g id="node18" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser.__init__</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="954.5,-764 761.5,-764 761.5,-728 954.5,-728 954.5,-764"/> -<text text-anchor="middle" x="858" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser.__init__</text> -<text text-anchor="middle" x="858" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="858" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.026976s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1408.5,-764 1211.5,-764 1211.5,-728 1408.5,-728 1408.5,-764"/> +<text text-anchor="middle" x="1310" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser.__init__</text> +<text text-anchor="middle" x="1310" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1310" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.026048s</text> </g> <!-- pymatlib.core.yaml_parser.create_alloy_from_yaml->pymatlib.core.yaml_parser.MaterialConfigParser.__init__ --> -<g id="edge11" class="edge"> +<g id="edge10" class="edge"> <title>pymatlib.core.yaml_parser.create_alloy_from_yaml->pymatlib.core.yaml_parser.MaterialConfigParser.__init__</title> -<path fill="none" stroke="#b2b2b2" d="M858,-807.69C858,-797.89 858,-785.42 858,-774.33"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="861.5,-774.26 858,-764.26 854.5,-774.26 861.5,-774.26"/> -<text text-anchor="middle" x="860" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M1076.25,-807.98C1122.95,-795.8 1185.93,-779.37 1234.75,-766.63"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1235.84,-769.96 1244.63,-764.05 1234.07,-763.19 1235.84,-769.96"/> +<text text-anchor="middle" x="1171" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser.create_alloy --> -<g id="node25" class="node"> +<g id="node24" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser.create_alloy</title> -<polygon fill="#e54ce5" stroke="#e54ce5" points="1186,-764 980,-764 980,-728 1186,-728 1186,-764"/> -<text text-anchor="middle" x="1083" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser.create_alloy</text> -<text text-anchor="middle" x="1083" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="1083" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 228.110086s</text> +<polygon fill="#e54ce5" stroke="#e54ce5" points="1117,-764 905,-764 905,-728 1117,-728 1117,-764"/> +<text text-anchor="middle" x="1011" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser.create_alloy</text> +<text text-anchor="middle" x="1011" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1011" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 219.072927s</text> </g> <!-- pymatlib.core.yaml_parser.create_alloy_from_yaml->pymatlib.core.yaml_parser.MaterialConfigParser.create_alloy --> -<g id="edge12" class="edge"> +<g id="edge11" class="edge"> <title>pymatlib.core.yaml_parser.create_alloy_from_yaml->pymatlib.core.yaml_parser.MaterialConfigParser.create_alloy</title> -<path fill="none" stroke="#b23bb2" d="M907.1,-807.98C941.52,-796.05 987.7,-780.04 1024.11,-767.42"/> -<polygon fill="#b23bb2" stroke="#b23bb2" points="1025.32,-770.7 1033.62,-764.12 1023.02,-764.09 1025.32,-770.7"/> -<text text-anchor="middle" x="979" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b23bb2" d="M1011,-807.69C1011,-797.89 1011,-785.42 1011,-774.33"/> +<polygon fill="#b23bb2" stroke="#b23bb2" points="1014.5,-774.26 1011,-764.26 1007.5,-774.26 1014.5,-774.26"/> +<text text-anchor="middle" x="1013" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._load_yaml --> -<g id="node20" class="node"> +<g id="node19" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._load_yaml</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1061,-684 857,-684 857,-648 1061,-648 1061,-684"/> -<text text-anchor="middle" x="959" y="-672.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._load_yaml</text> -<text text-anchor="middle" x="959" y="-664.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="959" y="-656.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.026249s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2131,-684 1919,-684 1919,-648 2131,-648 2131,-684"/> +<text text-anchor="middle" x="2025" y="-672.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._load_yaml</text> +<text text-anchor="middle" x="2025" y="-664.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="2025" y="-656.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.025413s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser.__init__->pymatlib.core.yaml_parser.MaterialConfigParser._load_yaml --> -<g id="edge13" class="edge"> +<g id="edge12" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser.__init__->pymatlib.core.yaml_parser.MaterialConfigParser._load_yaml</title> -<path fill="none" stroke="#b2b2b2" d="M880.42,-727.69C894.54,-716.78 912.96,-702.56 928.41,-690.62"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="930.87,-693.14 936.65,-684.26 926.59,-687.6 930.87,-693.14"/> -<text text-anchor="middle" x="913" y="-704.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M1408.55,-729.21C1411.74,-728.79 1414.89,-728.38 1418,-728 1632.59,-701.55 1690.25,-709.59 1908.64,-684.12"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1909.3,-687.57 1918.82,-682.92 1908.48,-680.62 1909.3,-687.57"/> +<text text-anchor="middle" x="1715" y="-704.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._validate_config --> -<g id="node21" class="node"> +<g id="node20" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._validate_config</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="838.5,-684 619.5,-684 619.5,-648 838.5,-648 838.5,-684"/> -<text text-anchor="middle" x="729" y="-672.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._validate_config</text> -<text text-anchor="middle" x="729" y="-664.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="729" y="-656.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000217s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1900.5,-684 1673.5,-684 1673.5,-648 1900.5,-648 1900.5,-684"/> +<text text-anchor="middle" x="1787" y="-672.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._validate_config</text> +<text text-anchor="middle" x="1787" y="-664.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1787" y="-656.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000202s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser.__init__->pymatlib.core.yaml_parser.MaterialConfigParser._validate_config --> -<g id="edge14" class="edge"> +<g id="edge13" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser.__init__->pymatlib.core.yaml_parser.MaterialConfigParser._validate_config</title> -<path fill="none" stroke="#b2b2b2" d="M829.69,-727.88C810.95,-716.55 786.2,-701.58 765.92,-689.32"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="767.61,-686.26 757.24,-684.08 763.99,-692.25 767.61,-686.26"/> -<text text-anchor="middle" x="799" y="-704.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M1408.55,-728.89C1485.33,-716.33 1592.06,-698.88 1672.61,-685.7"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1673.5,-689.11 1682.8,-684.04 1672.37,-682.2 1673.5,-689.11"/> +<text text-anchor="middle" x="1564" y="-704.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._validate_property_names --> -<g id="node22" class="node"> +<g id="node21" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._validate_property_names</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="588.5,-576 337.5,-576 337.5,-540 588.5,-540 588.5,-576"/> -<text text-anchor="middle" x="463" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._validate_property_names</text> -<text text-anchor="middle" x="463" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="463" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000010s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1917,-576 1657,-576 1657,-540 1917,-540 1917,-576"/> +<text text-anchor="middle" x="1787" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._validate_property_names</text> +<text text-anchor="middle" x="1787" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1787" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000010s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._validate_config->pymatlib.core.yaml_parser.MaterialConfigParser._validate_property_names --> -<g id="edge15" class="edge"> +<g id="edge14" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._validate_config->pymatlib.core.yaml_parser.MaterialConfigParser._validate_property_names</title> -<path fill="none" stroke="#b2b2b2" d="M686.26,-647.97C639.77,-629.44 565.41,-599.81 515.42,-579.89"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="516.66,-576.61 506.07,-576.16 514.07,-583.12 516.66,-576.61"/> -<text text-anchor="middle" x="637" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M1787,-647.97C1787,-631.38 1787,-605.88 1787,-586.43"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1790.5,-586.34 1787,-576.34 1783.5,-586.34 1790.5,-586.34"/> +<text text-anchor="middle" x="1789" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._validate_required_fields --> -<g id="node23" class="node"> +<g id="node22" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._validate_required_fields</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="851.5,-576 606.5,-576 606.5,-540 851.5,-540 851.5,-576"/> -<text text-anchor="middle" x="729" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._validate_required_fields</text> -<text text-anchor="middle" x="729" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="729" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000006s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2190.5,-576 1935.5,-576 1935.5,-540 2190.5,-540 2190.5,-576"/> +<text text-anchor="middle" x="2063" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._validate_required_fields</text> +<text text-anchor="middle" x="2063" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="2063" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000006s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._validate_config->pymatlib.core.yaml_parser.MaterialConfigParser._validate_required_fields --> -<g id="edge16" class="edge"> +<g id="edge15" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._validate_config->pymatlib.core.yaml_parser.MaterialConfigParser._validate_required_fields</title> -<path fill="none" stroke="#b2b2b2" d="M729,-647.97C729,-631.38 729,-605.88 729,-586.43"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="732.5,-586.34 729,-576.34 725.5,-586.34 732.5,-586.34"/> -<text text-anchor="middle" x="731" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M1831.34,-647.97C1879.69,-629.4 1957.06,-599.69 2008.93,-579.76"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2010.23,-583.02 2018.31,-576.16 2007.72,-576.48 2010.23,-583.02"/> +<text text-anchor="middle" x="1967" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.yaml_parser._validate_property_values --> -<g id="node24" class="node"> +<g id="node23" class="node"> <title>pymatlib.core.yaml_parser._validate_property_values</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1052,-576 870,-576 870,-540 1052,-540 1052,-576"/> -<text text-anchor="middle" x="961" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._validate_property_values</text> -<text text-anchor="middle" x="961" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="961" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000109s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2397,-576 2209,-576 2209,-540 2397,-540 2397,-576"/> +<text text-anchor="middle" x="2303" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._validate_property_values</text> +<text text-anchor="middle" x="2303" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="2303" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000096s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._validate_config->pymatlib.core.yaml_parser._validate_property_values --> -<g id="edge17" class="edge"> +<g id="edge16" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._validate_config->pymatlib.core.yaml_parser._validate_property_values</title> -<path fill="none" stroke="#b2b2b2" d="M766.27,-647.97C806.49,-629.6 870.61,-600.3 914.19,-580.39"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="915.79,-583.5 923.43,-576.16 912.88,-577.14 915.79,-583.5"/> -<text text-anchor="middle" x="881" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M1880.28,-647.94C1909.95,-642.38 1942.88,-636.07 1973,-630 2055.78,-613.31 2149.93,-592.91 2216.42,-578.27"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2217.42,-581.63 2226.44,-576.06 2215.92,-574.8 2217.42,-581.63"/> +<text text-anchor="middle" x="2146" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._get_elements --> -<g id="node26" class="node"> +<g id="node25" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._get_elements</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2529.5,-630 2314.5,-630 2314.5,-594 2529.5,-594 2529.5,-630"/> -<text text-anchor="middle" x="2422" y="-618.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._get_elements</text> -<text text-anchor="middle" x="2422" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="2422" y="-602.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.024456s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="738.5,-630 517.5,-630 517.5,-594 738.5,-594 738.5,-630"/> +<text text-anchor="middle" x="628" y="-618.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._get_elements</text> +<text text-anchor="middle" x="628" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="628" y="-602.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.019694s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser.create_alloy->pymatlib.core.yaml_parser.MaterialConfigParser._get_elements --> -<g id="edge18" class="edge"> +<g id="edge17" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser.create_alloy->pymatlib.core.yaml_parser.MaterialConfigParser._get_elements</title> -<path fill="none" stroke="#b2b2b2" d="M1186.1,-729.07C1189.1,-728.7 1192.07,-728.34 1195,-728 1439.48,-699.74 1501.93,-706.65 1747,-684 1942.4,-665.94 2169.23,-641.33 2303.9,-626.34"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2304.69,-629.77 2314.24,-625.18 2303.91,-622.81 2304.69,-629.77"/> -<text text-anchor="middle" x="1499" y="-704.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M961.32,-727.88C891.01,-703.64 762.65,-659.41 687.4,-633.47"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="688.18,-630.04 677.59,-630.09 685.9,-636.66 688.18,-630.04"/> +<text text-anchor="middle" x="908" y="-704.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_properties --> -<g id="node38" class="node"> +<g id="node37" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_properties</title> -<polygon fill="#e54ce5" stroke="#e54ce5" points="1738,-684 1506,-684 1506,-648 1738,-648 1738,-684"/> -<text text-anchor="middle" x="1622" y="-672.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_properties</text> -<text text-anchor="middle" x="1622" y="-664.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="1622" y="-656.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 228.082246s</text> +<polygon fill="#e54ce5" stroke="#e54ce5" points="1131,-684 891,-684 891,-648 1131,-648 1131,-684"/> +<text text-anchor="middle" x="1011" y="-672.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_properties</text> +<text text-anchor="middle" x="1011" y="-664.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1011" y="-656.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 219.050944s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser.create_alloy->pymatlib.core.yaml_parser.MaterialConfigParser._process_properties --> -<g id="edge19" class="edge"> +<g id="edge18" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser.create_alloy->pymatlib.core.yaml_parser.MaterialConfigParser._process_properties</title> -<path fill="none" stroke="#b23bb2" d="M1186.13,-729.31C1189.12,-728.87 1192.08,-728.43 1195,-728 1296.19,-713.09 1410.96,-696.73 1496.01,-684.7"/> -<polygon fill="#b23bb2" stroke="#b23bb2" points="1496.56,-688.16 1505.97,-683.3 1495.58,-681.23 1496.56,-688.16"/> -<text text-anchor="middle" x="1372" y="-704.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b23bb2" d="M1011,-727.69C1011,-717.89 1011,-705.42 1011,-694.33"/> +<polygon fill="#b23bb2" stroke="#b23bb2" points="1014.5,-694.26 1011,-684.26 1007.5,-694.26 1014.5,-694.26"/> +<text text-anchor="middle" x="1013" y="-704.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.yaml_parser.<listcomp> --> -<g id="node27" class="node"> +<g id="node26" class="node"> <title>pymatlib.core.yaml_parser.<listcomp></title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1440.5,-308 1305.5,-308 1305.5,-272 1440.5,-272 1440.5,-308"/> -<text text-anchor="middle" x="1373" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.<listcomp></text> -<text text-anchor="middle" x="1373" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 9</text> -<text text-anchor="middle" x="1373" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000041s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="905,-308 765,-308 765,-272 905,-272 905,-308"/> +<text text-anchor="middle" x="835" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.<listcomp></text> +<text text-anchor="middle" x="835" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 9</text> +<text text-anchor="middle" x="835" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000055s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._get_elements->pymatlib.core.yaml_parser.<listcomp> --> -<g id="edge20" class="edge"> +<g id="edge19" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._get_elements->pymatlib.core.yaml_parser.<listcomp></title> -<path fill="none" stroke="#b2b2b2" d="M2454.56,-593.87C2531.74,-551.2 2713.46,-437.5 2632,-352 2611.54,-330.53 1722.48,-301.67 1450.94,-293.34"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1450.88,-289.83 1440.78,-293.03 1450.67,-296.83 1450.88,-289.83"/> -<text text-anchor="middle" x="2628" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M517.29,-602.79C439.83,-596.22 347.53,-586.41 332,-576 316.8,-565.81 325.05,-552.83 312,-540 203.79,-433.62 -75.53,-463.86 27,-352 75.5,-299.08 560.25,-291.77 754.81,-290.98"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="754.98,-294.48 764.97,-290.94 754.96,-287.48 754.98,-294.48"/> +<text text-anchor="middle" x="245" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.alloy.<lambda> --> -<g id="node28" class="node"> +<g id="node27" class="node"> <title>pymatlib.core.alloy.<lambda></title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="711.5,-844 604.5,-844 604.5,-808 711.5,-808 711.5,-844"/> -<text text-anchor="middle" x="658" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.alloy.<lambda></text> -<text text-anchor="middle" x="658" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 3</text> -<text text-anchor="middle" x="658" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000021s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="793,-844 681,-844 681,-808 793,-808 793,-844"/> +<text text-anchor="middle" x="737" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.alloy.<lambda></text> +<text text-anchor="middle" x="737" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 3</text> +<text text-anchor="middle" x="737" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000015s</text> </g> <!-- pymatlib.core.alloy.Alloy.__post_init__ --> -<g id="node29" class="node"> +<g id="node28" class="node"> <title>pymatlib.core.alloy.Alloy.__post_init__</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="538,-844 404,-844 404,-808 538,-808 538,-844"/> -<text text-anchor="middle" x="471" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.alloy.Alloy.__post_init__</text> -<text text-anchor="middle" x="471" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="471" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000759s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="552.5,-844 417.5,-844 417.5,-808 552.5,-808 552.5,-844"/> +<text text-anchor="middle" x="485" y="-832.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.alloy.Alloy.__post_init__</text> +<text text-anchor="middle" x="485" y="-824.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="485" y="-816.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000962s</text> </g> <!-- pymatlib.core.alloy.Alloy._validate_composition --> -<g id="node30" class="node"> +<g id="node29" class="node"> <title>pymatlib.core.alloy.Alloy._validate_composition</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="552,-764 390,-764 390,-728 552,-728 552,-764"/> -<text text-anchor="middle" x="471" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.alloy.Alloy._validate_composition</text> -<text text-anchor="middle" x="471" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="471" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000242s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="568.5,-764 401.5,-764 401.5,-728 568.5,-728 568.5,-764"/> +<text text-anchor="middle" x="485" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.alloy.Alloy._validate_composition</text> +<text text-anchor="middle" x="485" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="485" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000236s</text> </g> <!-- pymatlib.core.alloy.Alloy.__post_init__->pymatlib.core.alloy.Alloy._validate_composition --> -<g id="edge21" class="edge"> +<g id="edge20" class="edge"> <title>pymatlib.core.alloy.Alloy.__post_init__->pymatlib.core.alloy.Alloy._validate_composition</title> -<path fill="none" stroke="#b2b2b2" d="M471,-807.69C471,-797.89 471,-785.42 471,-774.33"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="474.5,-774.26 471,-764.26 467.5,-774.26 474.5,-774.26"/> -<text text-anchor="middle" x="473" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M485,-807.69C485,-797.89 485,-785.42 485,-774.33"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="488.5,-774.26 485,-764.26 481.5,-774.26 488.5,-774.26"/> +<text text-anchor="middle" x="487" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.alloy.Alloy._validate_temperatures --> -<g id="node31" class="node"> +<g id="node30" class="node"> <title>pymatlib.core.alloy.Alloy._validate_temperatures</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="736,-764 570,-764 570,-728 736,-728 736,-764"/> -<text text-anchor="middle" x="653" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.alloy.Alloy._validate_temperatures</text> -<text text-anchor="middle" x="653" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="653" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000003s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="757.5,-764 586.5,-764 586.5,-728 757.5,-728 757.5,-764"/> +<text text-anchor="middle" x="672" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.alloy.Alloy._validate_temperatures</text> +<text text-anchor="middle" x="672" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="672" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000003s</text> </g> <!-- pymatlib.core.alloy.Alloy.__post_init__->pymatlib.core.alloy.Alloy._validate_temperatures --> -<g id="edge22" class="edge"> +<g id="edge21" class="edge"> <title>pymatlib.core.alloy.Alloy.__post_init__->pymatlib.core.alloy.Alloy._validate_temperatures</title> -<path fill="none" stroke="#b2b2b2" d="M510.94,-807.88C538.2,-796.2 574.51,-780.64 603.59,-768.18"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="605.34,-771.23 613.15,-764.08 602.58,-764.8 605.34,-771.23"/> -<text text-anchor="middle" x="569" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M526.04,-807.88C554.17,-796.15 591.68,-780.5 621.62,-768.01"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="623.18,-771.16 631.06,-764.08 620.48,-764.7 623.18,-771.16"/> +<text text-anchor="middle" x="586" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.alloy.Alloy._calculate_properties --> -<g id="node32" class="node"> +<g id="node31" class="node"> <title>pymatlib.core.alloy.Alloy._calculate_properties</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="371.5,-764 212.5,-764 212.5,-728 371.5,-728 371.5,-764"/> -<text text-anchor="middle" x="292" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.alloy.Alloy._calculate_properties</text> -<text text-anchor="middle" x="292" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="292" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000438s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="383.5,-764 220.5,-764 220.5,-728 383.5,-728 383.5,-764"/> +<text text-anchor="middle" x="302" y="-752.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.alloy.Alloy._calculate_properties</text> +<text text-anchor="middle" x="302" y="-744.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="302" y="-736.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000650s</text> </g> <!-- pymatlib.core.alloy.Alloy.__post_init__->pymatlib.core.alloy.Alloy._calculate_properties --> -<g id="edge23" class="edge"> +<g id="edge22" class="edge"> <title>pymatlib.core.alloy.Alloy.__post_init__->pymatlib.core.alloy.Alloy._calculate_properties</title> -<path fill="none" stroke="#b2b2b2" d="M431.72,-807.88C404.9,-796.2 369.2,-780.64 340.6,-768.18"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="341.76,-764.86 331.19,-764.08 338.96,-771.28 341.76,-764.86"/> -<text text-anchor="middle" x="388" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M444.84,-807.88C417.31,-796.15 380.61,-780.5 351.3,-768.01"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="352.64,-764.78 342.07,-764.08 349.89,-771.22 352.64,-764.78"/> +<text text-anchor="middle" x="400" y="-784.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.elements.interpolate_atomic_number --> -<g id="node33" class="node"> +<g id="node32" class="node"> <title>pymatlib.core.elements.interpolate_atomic_number</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="380,-684 204,-684 204,-648 380,-648 380,-684"/> -<text text-anchor="middle" x="292" y="-672.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.elements.interpolate_atomic_number</text> -<text text-anchor="middle" x="292" y="-664.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="292" y="-656.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000187s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="394.5,-684 209.5,-684 209.5,-648 394.5,-648 394.5,-684"/> +<text text-anchor="middle" x="302" y="-672.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.elements.interpolate_atomic_number</text> +<text text-anchor="middle" x="302" y="-664.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="302" y="-656.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000274s</text> </g> <!-- pymatlib.core.alloy.Alloy._calculate_properties->pymatlib.core.elements.interpolate_atomic_number --> -<g id="edge24" class="edge"> +<g id="edge23" class="edge"> <title>pymatlib.core.alloy.Alloy._calculate_properties->pymatlib.core.elements.interpolate_atomic_number</title> -<path fill="none" stroke="#b2b2b2" d="M292,-727.69C292,-717.89 292,-705.42 292,-694.33"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="295.5,-694.26 292,-684.26 288.5,-694.26 295.5,-694.26"/> -<text text-anchor="middle" x="294" y="-704.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M302,-727.69C302,-717.89 302,-705.42 302,-694.33"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="305.5,-694.26 302,-684.26 298.5,-694.26 305.5,-694.26"/> +<text text-anchor="middle" x="304" y="-704.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.elements.interpolate_atomic_mass --> -<g id="node36" class="node"> +<g id="node35" class="node"> <title>pymatlib.core.elements.interpolate_atomic_mass</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="186,-684 16,-684 16,-648 186,-648 186,-684"/> -<text text-anchor="middle" x="101" y="-672.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.elements.interpolate_atomic_mass</text> -<text text-anchor="middle" x="101" y="-664.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="101" y="-656.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000092s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="191.5,-684 16.5,-684 16.5,-648 191.5,-648 191.5,-684"/> +<text text-anchor="middle" x="104" y="-672.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.elements.interpolate_atomic_mass</text> +<text text-anchor="middle" x="104" y="-664.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="104" y="-656.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000146s</text> </g> <!-- pymatlib.core.alloy.Alloy._calculate_properties->pymatlib.core.elements.interpolate_atomic_mass --> -<g id="edge25" class="edge"> +<g id="edge24" class="edge"> <title>pymatlib.core.alloy.Alloy._calculate_properties->pymatlib.core.elements.interpolate_atomic_mass</title> -<path fill="none" stroke="#b2b2b2" d="M250.08,-727.88C221.35,-716.15 183.04,-700.5 152.46,-688.01"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="153.4,-684.62 142.82,-684.08 150.75,-691.1 153.4,-684.62"/> -<text text-anchor="middle" x="204" y="-704.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M258.55,-727.88C228.63,-716.1 188.71,-700.37 156.93,-687.85"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="157.94,-684.49 147.35,-684.08 155.37,-691 157.94,-684.49"/> +<text text-anchor="middle" x="210" y="-704.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.elements.interpolate_temperature_boil --> -<g id="node37" class="node"> +<g id="node36" class="node"> <title>pymatlib.core.elements.interpolate_temperature_boil</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="577.5,-684 398.5,-684 398.5,-648 577.5,-648 577.5,-684"/> -<text text-anchor="middle" x="488" y="-672.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.elements.interpolate_temperature_boil</text> -<text text-anchor="middle" x="488" y="-664.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="488" y="-656.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000082s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="603,-684 413,-684 413,-648 603,-648 603,-684"/> +<text text-anchor="middle" x="508" y="-672.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.elements.interpolate_temperature_boil</text> +<text text-anchor="middle" x="508" y="-664.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="508" y="-656.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000085s</text> </g> <!-- pymatlib.core.alloy.Alloy._calculate_properties->pymatlib.core.elements.interpolate_temperature_boil --> -<g id="edge26" class="edge"> +<g id="edge25" class="edge"> <title>pymatlib.core.alloy.Alloy._calculate_properties->pymatlib.core.elements.interpolate_temperature_boil</title> -<path fill="none" stroke="#b2b2b2" d="M335.01,-727.88C364.63,-716.1 404.15,-700.37 435.6,-687.85"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="437.09,-691.03 445.09,-684.08 434.5,-684.52 437.09,-691.03"/> -<text text-anchor="middle" x="397" y="-704.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M346.95,-727.98C378.2,-716.15 420.03,-700.31 453.23,-687.74"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="454.67,-690.93 462.79,-684.12 452.2,-684.39 454.67,-690.93"/> +<text text-anchor="middle" x="413" y="-704.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.elements.<listcomp> --> -<g id="node34" class="node"> +<g id="node33" class="node"> <title>pymatlib.core.elements.<listcomp></title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="319.5,-576 194.5,-576 194.5,-540 319.5,-540 319.5,-576"/> -<text text-anchor="middle" x="257" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.elements.<listcomp></text> -<text text-anchor="middle" x="257" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 3</text> -<text text-anchor="middle" x="257" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000022s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="303,-576 173,-576 173,-540 303,-540 303,-576"/> +<text text-anchor="middle" x="238" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.elements.<listcomp></text> +<text text-anchor="middle" x="238" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 3</text> +<text text-anchor="middle" x="238" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000021s</text> </g> <!-- pymatlib.core.elements.interpolate_atomic_number->pymatlib.core.elements.<listcomp> --> -<g id="edge27" class="edge"> +<g id="edge26" class="edge"> <title>pymatlib.core.elements.interpolate_atomic_number->pymatlib.core.elements.<listcomp></title> -<path fill="none" stroke="#b2b2b2" d="M286.38,-647.97C280.85,-631.22 272.32,-605.41 265.88,-585.89"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="269.18,-584.74 262.73,-576.34 262.54,-586.93 269.18,-584.74"/> +<path fill="none" stroke="#b2b2b2" d="M291.72,-647.97C281.47,-630.99 265.59,-604.7 253.75,-585.09"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="256.63,-583.09 248.47,-576.34 250.64,-586.71 256.63,-583.09"/> <text text-anchor="middle" x="281" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.elements.interpolate --> -<g id="node35" class="node"> +<g id="node34" class="node"> <title>pymatlib.core.elements.interpolate</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="176,-576 52,-576 52,-540 176,-540 176,-576"/> -<text text-anchor="middle" x="114" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.elements.interpolate</text> -<text text-anchor="middle" x="114" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 3</text> -<text text-anchor="middle" x="114" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000219s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="154.5,-576 23.5,-576 23.5,-540 154.5,-540 154.5,-576"/> +<text text-anchor="middle" x="89" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.elements.interpolate</text> +<text text-anchor="middle" x="89" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 3</text> +<text text-anchor="middle" x="89" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000304s</text> </g> <!-- pymatlib.core.elements.interpolate_atomic_number->pymatlib.core.elements.interpolate --> -<g id="edge28" class="edge"> +<g id="edge27" class="edge"> <title>pymatlib.core.elements.interpolate_atomic_number->pymatlib.core.elements.interpolate</title> -<path fill="none" stroke="#b2b2b2" d="M255.2,-647.84C244.86,-642.55 233.77,-636.41 224,-630 202.87,-616.14 201.04,-607.99 180,-594 173.24,-589.51 165.84,-585.12 158.52,-581.05"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="159.8,-577.77 149.34,-576.09 156.48,-583.93 159.8,-577.77"/> -<text text-anchor="middle" x="226" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M246.21,-647.9C234.4,-643.04 222.38,-637.1 212,-630 194.08,-617.75 196.92,-606.25 179,-594 171.38,-588.79 162.87,-584.2 154.21,-580.2"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="155.35,-576.88 144.79,-576.1 152.56,-583.3 155.35,-576.88"/> +<text text-anchor="middle" x="214" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.elements.interpolate_atomic_mass->pymatlib.core.elements.<listcomp> --> -<g id="edge29" class="edge"> +<g id="edge28" class="edge"> <title>pymatlib.core.elements.interpolate_atomic_mass->pymatlib.core.elements.<listcomp></title> -<path fill="none" stroke="#b2b2b2" d="M115.98,-647.71C130.2,-632.1 152.8,-609.3 176,-594 183.61,-588.98 192.05,-584.41 200.54,-580.34"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="202.09,-583.48 209.72,-576.13 199.17,-577.12 202.09,-583.48"/> -<text text-anchor="middle" x="178" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M118.63,-647.87C132.23,-632.58 153.57,-610.17 175,-594 180.97,-589.49 187.6,-585.18 194.24,-581.22"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="196.31,-584.06 203.24,-576.05 192.83,-577.99 196.31,-584.06"/> +<text text-anchor="middle" x="177" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.elements.interpolate_atomic_mass->pymatlib.core.elements.interpolate --> -<g id="edge30" class="edge"> +<g id="edge29" class="edge"> <title>pymatlib.core.elements.interpolate_atomic_mass->pymatlib.core.elements.interpolate</title> -<path fill="none" stroke="#b2b2b2" d="M103.09,-647.97C105.12,-631.38 108.25,-605.88 110.64,-586.43"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="114.13,-586.69 111.87,-576.34 107.18,-585.84 114.13,-586.69"/> -<text text-anchor="middle" x="111" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M101.59,-647.97C99.24,-631.38 95.63,-605.88 92.88,-586.43"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="96.32,-585.75 91.45,-576.34 89.39,-586.73 96.32,-585.75"/> +<text text-anchor="middle" x="100" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.elements.interpolate_temperature_boil->pymatlib.core.elements.<listcomp> --> -<g id="edge31" class="edge"> +<g id="edge30" class="edge"> <title>pymatlib.core.elements.interpolate_temperature_boil->pymatlib.core.elements.<listcomp></title> -<path fill="none" stroke="#b2b2b2" d="M450.89,-647.97C410.84,-629.6 347,-600.3 303.61,-580.39"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="304.95,-577.15 294.41,-576.16 302.03,-583.52 304.95,-577.15"/> -<text text-anchor="middle" x="408" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M464.62,-647.97C417.43,-629.44 341.95,-599.81 291.21,-579.89"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="292.31,-576.56 281.72,-576.16 289.75,-583.08 292.31,-576.56"/> +<text text-anchor="middle" x="414" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.elements.interpolate_temperature_boil->pymatlib.core.elements.interpolate --> -<g id="edge32" class="edge"> +<g id="edge31" class="edge"> <title>pymatlib.core.elements.interpolate_temperature_boil->pymatlib.core.elements.interpolate</title> -<path fill="none" stroke="#b2b2b2" d="M398.44,-649.5C395.26,-648.98 392.1,-648.48 389,-648 332.24,-639.14 311.84,-656.75 261,-630 241.79,-619.89 246.35,-605.59 228,-594 220.21,-589.08 204.05,-583.35 186.29,-577.97"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="186.88,-574.49 176.3,-575.02 184.9,-581.21 186.88,-574.49"/> -<text text-anchor="middle" x="263" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M412.81,-649.27C409.84,-648.83 406.9,-648.41 404,-648 336.64,-638.51 313.21,-659.69 252,-630 231.64,-620.12 235.56,-605.38 216,-594 206.44,-588.44 185.99,-582.08 164.23,-576.33"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="165.08,-572.93 154.52,-573.82 163.32,-579.71 165.08,-572.93"/> +<text text-anchor="middle" x="254" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._categorize_properties --> -<g id="node39" class="node"> +<g id="node38" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._categorize_properties</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1625.5,-576 1386.5,-576 1386.5,-540 1625.5,-540 1625.5,-576"/> -<text text-anchor="middle" x="1506" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._categorize_properties</text> -<text text-anchor="middle" x="1506" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="1506" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000694s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="589,-576 341,-576 341,-540 589,-540 589,-576"/> +<text text-anchor="middle" x="465" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._categorize_properties</text> +<text text-anchor="middle" x="465" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="465" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000823s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser.MaterialConfigParser._categorize_properties --> -<g id="edge33" class="edge"> +<g id="edge32" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser.MaterialConfigParser._categorize_properties</title> -<path fill="none" stroke="#b2b2b2" d="M1603.36,-647.97C1584.2,-630.46 1554.18,-603.02 1532.53,-583.25"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1534.72,-580.5 1524.98,-576.34 1530,-585.67 1534.72,-580.5"/> -<text text-anchor="middle" x="1583" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M896.9,-647.96C873.2,-643.16 848.57,-637.22 826,-630 789.64,-618.36 784.74,-604.4 748,-594 686.42,-576.57 666.49,-583.51 599.48,-576.11"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="599.58,-572.6 589.24,-574.91 598.77,-579.55 599.58,-572.6"/> +<text text-anchor="middle" x="828" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.yaml_parser._process_constant_property --> -<g id="node45" class="node"> +<g id="node44" class="node"> <title>pymatlib.core.yaml_parser._process_constant_property</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1834,-576 1644,-576 1644,-540 1834,-540 1834,-576"/> -<text text-anchor="middle" x="1739" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._process_constant_property</text> -<text text-anchor="middle" x="1739" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 3</text> -<text text-anchor="middle" x="1739" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000013s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1349,-576 1153,-576 1153,-540 1349,-540 1349,-576"/> +<text text-anchor="middle" x="1251" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._process_constant_property</text> +<text text-anchor="middle" x="1251" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 3</text> +<text text-anchor="middle" x="1251" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000016s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser._process_constant_property --> -<g id="edge34" class="edge"> +<g id="edge33" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser._process_constant_property</title> -<path fill="none" stroke="#b2b2b2" d="M1640.8,-647.97C1660.13,-630.46 1690.41,-603.02 1712.24,-583.25"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1714.8,-585.65 1719.86,-576.34 1710.1,-580.46 1714.8,-585.65"/> -<text text-anchor="middle" x="1699" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">3</text> +<path fill="none" stroke="#b2b2b2" d="M1049.56,-647.97C1091.25,-629.56 1157.77,-600.18 1202.86,-580.26"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1204.4,-583.41 1212.14,-576.16 1201.58,-577 1204.4,-583.41"/> +<text text-anchor="middle" x="1168" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">3</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_file_property --> -<g id="node46" class="node"> +<g id="node45" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_file_property</title> -<polygon fill="#dce4e5" stroke="#dce4e5" points="2091.5,-576 1852.5,-576 1852.5,-540 2091.5,-540 2091.5,-576"/> -<text text-anchor="middle" x="1972" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_file_property</text> -<text text-anchor="middle" x="1972" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> -<text text-anchor="middle" x="1972" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 13.578895s</text> +<polygon fill="#dce4e5" stroke="#dce4e5" points="1135,-576 887,-576 887,-540 1135,-540 1135,-576"/> +<text text-anchor="middle" x="1011" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_file_property</text> +<text text-anchor="middle" x="1011" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> +<text text-anchor="middle" x="1011" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 13.209312s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser.MaterialConfigParser._process_file_property --> -<g id="edge35" class="edge"> +<g id="edge34" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser.MaterialConfigParser._process_file_property</title> -<path fill="none" stroke="#abb1b2" d="M1678.23,-647.97C1740.27,-629.18 1840,-598.98 1905.77,-579.06"/> -<polygon fill="#abb1b2" stroke="#abb1b2" points="1907.06,-582.32 1915.62,-576.08 1905.03,-575.63 1907.06,-582.32"/> -<text text-anchor="middle" x="1850" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +<path fill="none" stroke="#abb1b2" d="M1011,-647.97C1011,-631.38 1011,-605.88 1011,-586.43"/> +<polygon fill="#abb1b2" stroke="#abb1b2" points="1014.5,-586.34 1011,-576.34 1007.5,-586.34 1014.5,-586.34"/> +<text text-anchor="middle" x="1013" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_key_val_property --> -<g id="node58" class="node"> +<g id="node57" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_key_val_property</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2364,-576 2110,-576 2110,-540 2364,-540 2364,-576"/> -<text text-anchor="middle" x="2237" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_key_val_property</text> -<text text-anchor="middle" x="2237" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> -<text text-anchor="middle" x="2237" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.347853s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="869,-576 607,-576 607,-540 869,-540 869,-576"/> +<text text-anchor="middle" x="738" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_key_val_property</text> +<text text-anchor="middle" x="738" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="738" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.357805s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser.MaterialConfigParser._process_key_val_property --> -<g id="edge36" class="edge"> +<g id="edge35" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser.MaterialConfigParser._process_key_val_property</title> -<path fill="none" stroke="#b2b2b2" d="M1738.18,-648.46C1775.81,-642.88 1817.72,-636.43 1856,-630 1953,-613.71 2063.46,-592.87 2140.37,-577.99"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2141.38,-581.37 2150.53,-576.03 2140.04,-574.49 2141.38,-581.37"/> -<text text-anchor="middle" x="2055" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +<path fill="none" stroke="#b2b2b2" d="M967.14,-647.97C919.42,-629.44 843.1,-599.81 791.8,-579.89"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="792.79,-576.52 782.21,-576.16 790.26,-583.05 792.79,-576.52"/> +<text text-anchor="middle" x="916" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property --> -<g id="node62" class="node"> +<g id="node61" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property</title> -<polygon fill="#d455e5" stroke="#d455e5" points="1331.5,-576 1070.5,-576 1070.5,-540 1331.5,-540 1331.5,-576"/> -<text text-anchor="middle" x="1201" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property</text> -<text text-anchor="middle" x="1201" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> -<text text-anchor="middle" x="1201" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 214.154366s</text> +<polygon fill="#d355e5" stroke="#d355e5" points="1639,-576 1367,-576 1367,-540 1639,-540 1639,-576"/> +<text text-anchor="middle" x="1503" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property</text> +<text text-anchor="middle" x="1503" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> +<text text-anchor="middle" x="1503" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 205.482486s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property --> -<g id="edge37" class="edge"> +<g id="edge36" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property</title> -<path fill="none" stroke="#a442b2" d="M1554.36,-647.97C1479.13,-629.03 1357.81,-598.48 1278.73,-578.57"/> -<polygon fill="#a442b2" stroke="#a442b2" points="1279.37,-575.12 1268.82,-576.08 1277.66,-581.91 1279.37,-575.12"/> -<text text-anchor="middle" x="1475" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +<path fill="none" stroke="#a442b2" d="M1090.59,-647.93C1117.12,-642.23 1146.84,-635.85 1174,-630 1255.37,-612.48 1348.04,-592.48 1414.25,-578.18"/> +<polygon fill="#a442b2" stroke="#a442b2" points="1415.2,-581.56 1424.23,-576.02 1413.72,-574.71 1415.2,-581.56"/> +<text text-anchor="middle" x="1337" y="-610.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type --> -<g id="node40" class="node"> +<g id="node39" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type</title> -<polygon fill="#e4e5e5" stroke="#e4e5e5" points="1671,-496 1421,-496 1421,-460 1671,-460 1671,-496"/> -<text text-anchor="middle" x="1546" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type</text> -<text text-anchor="middle" x="1546" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 12</text> -<text text-anchor="middle" x="1546" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000440s</text> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="589,-496 327,-496 327,-460 589,-460 589,-496"/> +<text text-anchor="middle" x="458" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type</text> +<text text-anchor="middle" x="458" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 12</text> +<text text-anchor="middle" x="458" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000488s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._categorize_properties->pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type --> -<g id="edge38" class="edge"> +<g id="edge37" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._categorize_properties->pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type</title> -<path fill="none" stroke="#b2b2b2" d="M1514.88,-539.69C1520.06,-529.59 1526.69,-516.65 1532.51,-505.31"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1535.7,-506.76 1537.15,-496.26 1529.47,-503.56 1535.7,-506.76"/> -<text text-anchor="middle" x="1531" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">12</text> +<path fill="none" stroke="#b2b2b2" d="M463.45,-539.69C462.57,-529.89 461.45,-517.42 460.45,-506.33"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="463.93,-505.91 459.55,-496.26 456.96,-506.54 463.93,-505.91"/> +<text text-anchor="middle" x="465" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">12</text> </g> <!-- pymatlib.core.yaml_parser._is_numeric --> -<g id="node41" class="node"> +<g id="node40" class="node"> <title>pymatlib.core.yaml_parser._is_numeric</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1773.5,-388 1634.5,-388 1634.5,-352 1773.5,-352 1773.5,-388"/> -<text text-anchor="middle" x="1704" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._is_numeric</text> -<text text-anchor="middle" x="1704" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 3</text> -<text text-anchor="middle" x="1704" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000016s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="529.5,-388 386.5,-388 386.5,-352 529.5,-352 529.5,-388"/> +<text text-anchor="middle" x="458" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._is_numeric</text> +<text text-anchor="middle" x="458" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 3</text> +<text text-anchor="middle" x="458" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000020s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type->pymatlib.core.yaml_parser._is_numeric --> -<g id="edge39" class="edge"> +<g id="edge38" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type->pymatlib.core.yaml_parser._is_numeric</title> -<path fill="none" stroke="#b2b2b2" d="M1571.39,-459.97C1598.14,-442.02 1640.43,-413.65 1670.04,-393.78"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1672.06,-396.64 1678.42,-388.16 1668.16,-390.83 1672.06,-396.64"/> -<text text-anchor="middle" x="1650" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">3</text> +<path fill="none" stroke="#b2b2b2" d="M458,-459.97C458,-443.38 458,-417.88 458,-398.43"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="461.5,-398.34 458,-388.34 454.5,-398.34 461.5,-398.34"/> +<text text-anchor="middle" x="460" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">3</text> </g> <!-- pymatlib.core.yaml_parser._is_data_file --> -<g id="node42" class="node"> +<g id="node41" class="node"> <title>pymatlib.core.yaml_parser._is_data_file</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1616,-388 1476,-388 1476,-352 1616,-352 1616,-388"/> -<text text-anchor="middle" x="1546" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._is_data_file</text> -<text text-anchor="middle" x="1546" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 9</text> -<text text-anchor="middle" x="1546" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000067s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="179.5,-388 36.5,-388 36.5,-352 179.5,-352 179.5,-388"/> +<text text-anchor="middle" x="108" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._is_data_file</text> +<text text-anchor="middle" x="108" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 9</text> +<text text-anchor="middle" x="108" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000065s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type->pymatlib.core.yaml_parser._is_data_file --> -<g id="edge40" class="edge"> +<g id="edge39" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type->pymatlib.core.yaml_parser._is_data_file</title> -<path fill="none" stroke="#b2b2b2" d="M1546,-459.97C1546,-443.38 1546,-417.88 1546,-398.43"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1549.5,-398.34 1546,-388.34 1542.5,-398.34 1549.5,-398.34"/> -<text text-anchor="middle" x="1548" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">9</text> +<path fill="none" stroke="#b2b2b2" d="M397.42,-459.91C377.8,-454.3 355.95,-447.97 336,-442 280.31,-425.34 217.23,-405.63 171.56,-391.21"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="172.38,-387.8 161.79,-388.13 170.27,-394.48 172.38,-387.8"/> +<text text-anchor="middle" x="338" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">9</text> </g> <!-- pymatlib.core.yaml_parser._is_key_val_property --> -<g id="node43" class="node"> +<g id="node42" class="node"> <title>pymatlib.core.yaml_parser._is_key_val_property</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1958.5,-388 1791.5,-388 1791.5,-352 1958.5,-352 1958.5,-388"/> -<text text-anchor="middle" x="1875" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._is_key_val_property</text> -<text text-anchor="middle" x="1875" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 7</text> -<text text-anchor="middle" x="1875" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000011s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="368.5,-388 197.5,-388 197.5,-352 368.5,-352 368.5,-388"/> +<text text-anchor="middle" x="283" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._is_key_val_property</text> +<text text-anchor="middle" x="283" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 7</text> +<text text-anchor="middle" x="283" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000012s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type->pymatlib.core.yaml_parser._is_key_val_property --> -<g id="edge41" class="edge"> +<g id="edge40" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type->pymatlib.core.yaml_parser._is_key_val_property</title> -<path fill="none" stroke="#b2b2b2" d="M1599.73,-459.97C1617.63,-454.28 1637.68,-447.88 1656,-442 1709.07,-424.96 1769.31,-405.41 1813.15,-391.15"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1814.39,-394.43 1822.81,-388.01 1812.22,-387.77 1814.39,-394.43"/> -<text text-anchor="middle" x="1765" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">7</text> +<path fill="none" stroke="#b2b2b2" d="M429.88,-459.97C400.12,-441.94 353,-413.4 320.19,-393.53"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="321.7,-390.35 311.34,-388.16 318.08,-396.34 321.7,-390.35"/> +<text text-anchor="middle" x="398" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">7</text> </g> <!-- pymatlib.core.yaml_parser._is_compute_property --> -<g id="node44" class="node"> +<g id="node43" class="node"> <title>pymatlib.core.yaml_parser._is_compute_property</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1458,-388 1288,-388 1288,-352 1458,-352 1458,-388"/> -<text text-anchor="middle" x="1373" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._is_compute_property</text> -<text text-anchor="middle" x="1373" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 3</text> -<text text-anchor="middle" x="1373" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000041s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="724.5,-388 547.5,-388 547.5,-352 724.5,-352 724.5,-388"/> +<text text-anchor="middle" x="636" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._is_compute_property</text> +<text text-anchor="middle" x="636" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 3</text> +<text text-anchor="middle" x="636" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000040s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type->pymatlib.core.yaml_parser._is_compute_property --> -<g id="edge42" class="edge"> +<g id="edge41" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type->pymatlib.core.yaml_parser._is_compute_property</title> -<path fill="none" stroke="#b2b2b2" d="M1518.2,-459.97C1488.78,-441.94 1442.2,-413.4 1409.76,-393.53"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1411.37,-390.4 1401.01,-388.16 1407.71,-396.37 1411.37,-390.4"/> -<text text-anchor="middle" x="1487" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">3</text> +<path fill="none" stroke="#b2b2b2" d="M486.6,-459.97C516.87,-441.94 564.8,-413.4 598.17,-393.53"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="600.38,-396.29 607.18,-388.16 596.79,-390.27 600.38,-396.29"/> +<text text-anchor="middle" x="575" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">3</text> </g> <!-- pymatlib.core.yaml_parser._is_data_file->pymatlib.core.yaml_parser.<listcomp> --> -<g id="edge43" class="edge"> +<g id="edge42" class="edge"> <title>pymatlib.core.yaml_parser._is_data_file->pymatlib.core.yaml_parser.<listcomp></title> -<path fill="none" stroke="#b2b2b2" d="M1508.03,-351.88C1482.23,-340.25 1447.91,-324.78 1420.33,-312.34"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1421.43,-309 1410.88,-308.08 1418.55,-315.38 1421.43,-309"/> -<text text-anchor="middle" x="1466" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M179.91,-353.47C182.98,-352.95 186.02,-352.45 189,-352 391.58,-321.28 632.4,-303.42 754.86,-295.65"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="755.14,-299.14 764.9,-295.02 754.7,-292.16 755.14,-299.14"/> +<text text-anchor="middle" x="385" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.yaml_parser._is_compute_property->pymatlib.core.yaml_parser.<listcomp> --> -<g id="edge44" class="edge"> +<g id="edge43" class="edge"> <title>pymatlib.core.yaml_parser._is_compute_property->pymatlib.core.yaml_parser.<listcomp></title> -<path fill="none" stroke="#b2b2b2" d="M1373,-351.69C1373,-341.89 1373,-329.42 1373,-318.33"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1376.5,-318.26 1373,-308.26 1369.5,-318.26 1376.5,-318.26"/> -<text text-anchor="middle" x="1375" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M679.67,-351.88C709.74,-340.1 749.87,-324.37 781.8,-311.85"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="783.4,-314.99 791.43,-308.08 780.84,-308.47 783.4,-314.99"/> +<text text-anchor="middle" x="743" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.data_handler.read_data_from_file --> -<g id="node47" class="node"> +<g id="node46" class="node"> <title>pymatlib.core.data_handler.read_data_from_file</title> -<polygon fill="#e3e5e5" stroke="#e3e5e5" points="2054,-496 1890,-496 1890,-460 2054,-460 2054,-496"/> -<text text-anchor="middle" x="1972" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.data_handler.read_data_from_file</text> -<text text-anchor="middle" x="1972" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> -<text text-anchor="middle" x="1972" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 2.784941s</text> +<polygon fill="#e3e5e5" stroke="#e3e5e5" points="1326.5,-496 1153.5,-496 1153.5,-460 1326.5,-460 1326.5,-496"/> +<text text-anchor="middle" x="1240" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.data_handler.read_data_from_file</text> +<text text-anchor="middle" x="1240" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> +<text text-anchor="middle" x="1240" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 2.769717s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_file_property->pymatlib.core.data_handler.read_data_from_file --> -<g id="edge45" class="edge"> +<g id="edge44" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_file_property->pymatlib.core.data_handler.read_data_from_file</title> -<path fill="none" stroke="#b0b2b2" d="M1972,-539.69C1972,-529.89 1972,-517.42 1972,-506.33"/> -<polygon fill="#b0b2b2" stroke="#b0b2b2" points="1975.5,-506.26 1972,-496.26 1968.5,-506.26 1975.5,-506.26"/> -<text text-anchor="middle" x="1974" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +<path fill="none" stroke="#b0b2b2" d="M1060.97,-539.98C1096.01,-528.05 1143.01,-512.04 1180.06,-499.42"/> +<polygon fill="#b0b2b2" stroke="#b0b2b2" points="1181.4,-502.66 1189.74,-496.12 1179.14,-496.03 1181.4,-502.66"/> +<text text-anchor="middle" x="1134" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data --> -<g id="node48" class="node"> +<g id="node47" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data</title> -<polygon fill="#dde4e5" stroke="#dde4e5" points="2582,-496 2338,-496 2338,-460 2582,-460 2582,-496"/> -<text text-anchor="middle" x="2460" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data</text> -<text text-anchor="middle" x="2460" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 6</text> -<text text-anchor="middle" x="2460" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 11.140857s</text> +<polygon fill="#dde4e5" stroke="#dde4e5" points="1135.5,-496 882.5,-496 882.5,-460 1135.5,-460 1135.5,-496"/> +<text text-anchor="middle" x="1009" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data</text> +<text text-anchor="middle" x="1009" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 6</text> +<text text-anchor="middle" x="1009" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 10.796411s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_file_property->pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data --> -<g id="edge46" class="edge"> +<g id="edge45" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_file_property->pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data</title> -<path fill="none" stroke="#acb1b2" d="M2060.38,-539.98C2104.63,-531.7 2159.07,-521.85 2208,-514 2246.73,-507.78 2288.92,-501.67 2327.51,-496.33"/> -<polygon fill="#acb1b2" stroke="#acb1b2" points="2328.33,-499.75 2337.76,-494.92 2327.37,-492.82 2328.33,-499.75"/> -<text text-anchor="middle" x="2210" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +<path fill="none" stroke="#acb1b2" d="M1010.56,-539.69C1010.3,-529.89 1009.99,-517.42 1009.7,-506.33"/> +<polygon fill="#acb1b2" stroke="#acb1b2" points="1013.2,-506.17 1009.44,-496.26 1006.2,-506.35 1013.2,-506.17"/> +<text text-anchor="middle" x="1012" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_symbolic_temperature --> -<g id="node49" class="node"> +<g id="node48" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_symbolic_temperature</title> -<polygon fill="#dde4e5" stroke="#dde4e5" points="2623,-388 2353,-388 2353,-352 2623,-352 2623,-388"/> -<text text-anchor="middle" x="2488" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_symbolic_temperature</text> -<text text-anchor="middle" x="2488" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 6</text> -<text text-anchor="middle" x="2488" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 11.140720s</text> +<polygon fill="#dde4e5" stroke="#dde4e5" points="1401.5,-388 1122.5,-388 1122.5,-352 1401.5,-352 1401.5,-388"/> +<text text-anchor="middle" x="1262" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_symbolic_temperature</text> +<text text-anchor="middle" x="1262" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 6</text> +<text text-anchor="middle" x="1262" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 10.796293s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data->pymatlib.core.yaml_parser.MaterialConfigParser._process_symbolic_temperature --> -<g id="edge47" class="edge"> +<g id="edge46" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data->pymatlib.core.yaml_parser.MaterialConfigParser._process_symbolic_temperature</title> -<path fill="none" stroke="#acb1b2" d="M2464.5,-459.97C2468.9,-443.3 2475.68,-417.65 2480.83,-398.16"/> -<polygon fill="#acb1b2" stroke="#acb1b2" points="2484.25,-398.9 2483.42,-388.34 2477.48,-397.12 2484.25,-398.9"/> -<text text-anchor="middle" x="2480" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">6</text> +<path fill="none" stroke="#acb1b2" d="M1049.65,-459.97C1093.69,-441.52 1164.01,-412.05 1211.55,-392.14"/> +<polygon fill="#acb1b2" stroke="#acb1b2" points="1213.16,-395.26 1221.03,-388.16 1210.46,-388.8 1213.16,-395.26"/> +<text text-anchor="middle" x="1174" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">6</text> </g> <!-- pymatlib.core.interpolators.interpolate_property --> -<g id="node50" class="node"> +<g id="node49" class="node"> <title>pymatlib.core.interpolators.interpolate_property</title> -<polygon fill="#dde4e5" stroke="#dde4e5" points="2131.5,-308 1968.5,-308 1968.5,-272 2131.5,-272 2131.5,-308"/> -<text text-anchor="middle" x="2050" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.interpolate_property</text> -<text text-anchor="middle" x="2050" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 6</text> -<text text-anchor="middle" x="2050" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 11.140519s</text> +<polygon fill="#dde4e5" stroke="#dde4e5" points="1612,-308 1436,-308 1436,-272 1612,-272 1612,-308"/> +<text text-anchor="middle" x="1524" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.interpolate_property</text> +<text text-anchor="middle" x="1524" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 6</text> +<text text-anchor="middle" x="1524" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 10.796088s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_symbolic_temperature->pymatlib.core.interpolators.interpolate_property --> -<g id="edge48" class="edge"> +<g id="edge47" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_symbolic_temperature->pymatlib.core.interpolators.interpolate_property</title> -<path fill="none" stroke="#acb1b2" d="M2392.42,-351.98C2318.01,-338.73 2215.39,-320.45 2141.93,-307.37"/> -<polygon fill="#acb1b2" stroke="#acb1b2" points="2142.22,-303.87 2131.76,-305.56 2140.99,-310.76 2142.22,-303.87"/> -<text text-anchor="middle" x="2284" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">6</text> +<path fill="none" stroke="#acb1b2" d="M1319.17,-351.98C1359.68,-339.92 1414.18,-323.7 1456.77,-311.01"/> +<polygon fill="#acb1b2" stroke="#acb1b2" points="1457.91,-314.33 1466.5,-308.12 1455.91,-307.62 1457.91,-314.33"/> +<text text-anchor="middle" x="1402" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">6</text> </g> <!-- pymatlib.core.data_handler.check_equidistant --> -<g id="node51" class="node"> +<g id="node50" class="node"> <title>pymatlib.core.data_handler.check_equidistant</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2240.5,-228 2081.5,-228 2081.5,-192 2240.5,-192 2240.5,-228"/> -<text text-anchor="middle" x="2161" y="-216.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.data_handler.check_equidistant</text> -<text text-anchor="middle" x="2161" y="-208.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 6</text> -<text text-anchor="middle" x="2161" y="-200.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.001892s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1915.5,-228 1750.5,-228 1750.5,-192 1915.5,-192 1915.5,-228"/> +<text text-anchor="middle" x="1833" y="-216.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.data_handler.check_equidistant</text> +<text text-anchor="middle" x="1833" y="-208.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 6</text> +<text text-anchor="middle" x="1833" y="-200.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.002060s</text> </g> <!-- pymatlib.core.interpolators.interpolate_property->pymatlib.core.data_handler.check_equidistant --> -<g id="edge49" class="edge"> +<g id="edge48" class="edge"> <title>pymatlib.core.interpolators.interpolate_property->pymatlib.core.data_handler.check_equidistant</title> -<path fill="none" stroke="#b2b2b2" d="M2074.36,-271.88C2090.12,-260.81 2110.83,-246.25 2128.05,-234.15"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2130.53,-236.69 2136.7,-228.08 2126.5,-230.96 2130.53,-236.69"/> -<text text-anchor="middle" x="2110" y="-248.4" font-family="Verdana" font-size="7.00" fill="#000000">6</text> +<path fill="none" stroke="#b2b2b2" d="M1591.43,-271.98C1639.79,-259.77 1705.05,-243.3 1755.55,-230.55"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1756.61,-233.89 1765.45,-228.05 1754.9,-227.11 1756.61,-233.89"/> +<text text-anchor="middle" x="1689" y="-248.4" font-family="Verdana" font-size="7.00" fill="#000000">6</text> </g> <!-- pymatlib.core.interpolators.interpolate_lookup --> -<g id="node52" class="node"> +<g id="node51" class="node"> <title>pymatlib.core.interpolators.interpolate_lookup</title> -<polygon fill="#dee4e5" stroke="#dee4e5" points="1874,-228 1716,-228 1716,-192 1874,-192 1874,-228"/> -<text text-anchor="middle" x="1795" y="-216.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.interpolate_lookup</text> -<text text-anchor="middle" x="1795" y="-208.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> -<text text-anchor="middle" x="1795" y="-200.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 10.813489s</text> +<polygon fill="#dee4e5" stroke="#dee4e5" points="1532,-228 1362,-228 1362,-192 1532,-192 1532,-228"/> +<text text-anchor="middle" x="1447" y="-216.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.interpolate_lookup</text> +<text text-anchor="middle" x="1447" y="-208.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="1447" y="-200.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 10.462352s</text> </g> <!-- pymatlib.core.interpolators.interpolate_property->pymatlib.core.interpolators.interpolate_lookup --> -<g id="edge50" class="edge"> +<g id="edge49" class="edge"> <title>pymatlib.core.interpolators.interpolate_property->pymatlib.core.interpolators.interpolate_lookup</title> -<path fill="none" stroke="#acb1b2" d="M1994.35,-271.98C1955.01,-259.94 1902.11,-243.76 1860.69,-231.09"/> -<polygon fill="#acb1b2" stroke="#acb1b2" points="1861.55,-227.7 1850.97,-228.12 1859.51,-234.39 1861.55,-227.7"/> -<text text-anchor="middle" x="1932" y="-248.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +<path fill="none" stroke="#acb1b2" d="M1506.91,-271.69C1496.44,-261.09 1482.88,-247.35 1471.31,-235.62"/> +<polygon fill="#acb1b2" stroke="#acb1b2" points="1473.56,-232.92 1464.04,-228.26 1468.58,-237.84 1473.56,-232.92"/> +<text text-anchor="middle" x="1489" y="-248.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> </g> <!-- pymatlib.core.interpolators.interpolate_equidistant --> -<g id="node57" class="node"> +<g id="node56" class="node"> <title>pymatlib.core.interpolators.interpolate_equidistant</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2063.5,-228 1892.5,-228 1892.5,-192 2063.5,-192 2063.5,-228"/> -<text text-anchor="middle" x="1978" y="-216.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.interpolate_equidistant</text> -<text text-anchor="middle" x="1978" y="-208.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> -<text text-anchor="middle" x="1978" y="-200.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.324139s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1732,-228 1550,-228 1550,-192 1732,-192 1732,-228"/> +<text text-anchor="middle" x="1641" y="-216.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.interpolate_equidistant</text> +<text text-anchor="middle" x="1641" y="-208.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> +<text text-anchor="middle" x="1641" y="-200.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.330522s</text> </g> <!-- pymatlib.core.interpolators.interpolate_property->pymatlib.core.interpolators.interpolate_equidistant --> -<g id="edge51" class="edge"> +<g id="edge50" class="edge"> <title>pymatlib.core.interpolators.interpolate_property->pymatlib.core.interpolators.interpolate_equidistant</title> -<path fill="none" stroke="#b2b2b2" d="M2034.02,-271.69C2024.23,-261.09 2011.55,-247.35 2000.73,-235.62"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2003.29,-233.24 1993.93,-228.26 1998.15,-237.98 2003.29,-233.24"/> -<text text-anchor="middle" x="2018" y="-248.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +<path fill="none" stroke="#b2b2b2" d="M1549.68,-271.88C1566.44,-260.71 1588.52,-245.99 1606.77,-233.82"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1609,-236.54 1615.38,-228.08 1605.12,-230.71 1609,-236.54"/> +<text text-anchor="middle" x="1588" y="-248.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> </g> <!-- pymatlib.core.models.wrapper --> -<g id="node53" class="node"> +<g id="node52" class="node"> <title>pymatlib.core.models.wrapper</title> -<polygon fill="#e4e5e5" stroke="#e4e5e5" points="1850,-148 1740,-148 1740,-112 1850,-112 1850,-148"/> -<text text-anchor="middle" x="1795" y="-136.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models.wrapper</text> -<text text-anchor="middle" x="1795" y="-128.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 20</text> -<text text-anchor="middle" x="1795" y="-120.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.160822s</text> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="1700,-148 1582,-148 1582,-112 1700,-112 1700,-148"/> +<text text-anchor="middle" x="1641" y="-136.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models.wrapper</text> +<text text-anchor="middle" x="1641" y="-128.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 20</text> +<text text-anchor="middle" x="1641" y="-120.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.160047s</text> </g> <!-- pymatlib.core.interpolators.interpolate_lookup->pymatlib.core.models.wrapper --> -<g id="edge52" class="edge"> +<g id="edge51" class="edge"> <title>pymatlib.core.interpolators.interpolate_lookup->pymatlib.core.models.wrapper</title> -<path fill="none" stroke="#b2b2b2" d="M1795,-191.69C1795,-181.89 1795,-169.42 1795,-158.33"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1798.5,-158.26 1795,-148.26 1791.5,-158.26 1798.5,-158.26"/> -<text text-anchor="middle" x="1797" y="-168.4" font-family="Verdana" font-size="7.00" fill="#000000">8</text> +<path fill="none" stroke="#b2b2b2" d="M1489.57,-191.88C1518.89,-180.1 1558.01,-164.37 1589.14,-151.85"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1590.55,-155.06 1598.53,-148.08 1587.94,-148.56 1590.55,-155.06"/> +<text text-anchor="middle" x="1551" y="-168.4" font-family="Verdana" font-size="7.00" fill="#000000">8</text> </g> <!-- pymatlib.core.models.<listcomp> --> -<g id="node54" class="node"> +<g id="node53" class="node"> <title>pymatlib.core.models.<listcomp></title> -<polygon fill="#e4e5e5" stroke="#e4e5e5" points="1854.5,-68 1735.5,-68 1735.5,-32 1854.5,-32 1854.5,-68"/> -<text text-anchor="middle" x="1795" y="-56.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models.<listcomp></text> -<text text-anchor="middle" x="1795" y="-48.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 10</text> -<text text-anchor="middle" x="1795" y="-40.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.158697s</text> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="1703.5,-68 1578.5,-68 1578.5,-32 1703.5,-32 1703.5,-68"/> +<text text-anchor="middle" x="1641" y="-56.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models.<listcomp></text> +<text text-anchor="middle" x="1641" y="-48.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 10</text> +<text text-anchor="middle" x="1641" y="-40.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.157649s</text> </g> <!-- pymatlib.core.models.wrapper->pymatlib.core.models.<listcomp> --> -<g id="edge53" class="edge"> +<g id="edge52" class="edge"> <title>pymatlib.core.models.wrapper->pymatlib.core.models.<listcomp></title> -<path fill="none" stroke="#b2b2b2" d="M1795,-111.69C1795,-101.89 1795,-89.42 1795,-78.33"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1798.5,-78.26 1795,-68.26 1791.5,-78.26 1798.5,-78.26"/> -<text text-anchor="middle" x="1799" y="-88.4" font-family="Verdana" font-size="7.00" fill="#000000">10</text> +<path fill="none" stroke="#b2b2b2" d="M1641,-111.69C1641,-101.89 1641,-89.42 1641,-78.33"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1644.5,-78.26 1641,-68.26 1637.5,-78.26 1644.5,-78.26"/> +<text text-anchor="middle" x="1645" y="-88.4" font-family="Verdana" font-size="7.00" fill="#000000">10</text> </g> <!-- pymatlib.core.typedefs.MaterialProperty.__post_init__ --> -<g id="node55" class="node"> +<g id="node54" class="node"> <title>pymatlib.core.typedefs.MaterialProperty.__post_init__</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="200,-388 16,-388 16,-352 200,-352 200,-388"/> -<text text-anchor="middle" x="108" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.typedefs.MaterialProperty.__post_init__</text> -<text text-anchor="middle" x="108" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 8</text> -<text text-anchor="middle" x="108" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000429s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2086.5,-388 1897.5,-388 1897.5,-352 2086.5,-352 2086.5,-388"/> +<text text-anchor="middle" x="1992" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.typedefs.MaterialProperty.__post_init__</text> +<text text-anchor="middle" x="1992" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 8</text> +<text text-anchor="middle" x="1992" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000517s</text> </g> <!-- pymatlib.core.typedefs.<genexpr> --> -<g id="node56" class="node"> +<g id="node55" class="node"> <title>pymatlib.core.typedefs.<genexpr></title> -<polygon fill="#9998e5" stroke="#9998e5" points="287,-308 165,-308 165,-272 287,-272 287,-308"/> -<text text-anchor="middle" x="226" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.typedefs.<genexpr></text> -<text text-anchor="middle" x="226" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1,657</text> -<text text-anchor="middle" x="226" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.160218s</text> +<polygon fill="#9998e5" stroke="#9998e5" points="2153.5,-308 2024.5,-308 2024.5,-272 2153.5,-272 2153.5,-308"/> +<text text-anchor="middle" x="2089" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.typedefs.<genexpr></text> +<text text-anchor="middle" x="2089" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1,657</text> +<text text-anchor="middle" x="2089" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.151984s</text> </g> <!-- pymatlib.core.typedefs.MaterialProperty.__post_init__->pymatlib.core.typedefs.<genexpr> --> -<g id="edge54" class="edge"> +<g id="edge53" class="edge"> <title>pymatlib.core.typedefs.MaterialProperty.__post_init__->pymatlib.core.typedefs.<genexpr></title> -<path fill="none" stroke="#b1b2b2" d="M133.9,-351.88C150.88,-340.66 173.28,-325.85 191.73,-313.65"/> -<polygon fill="#b1b2b2" stroke="#b1b2b2" points="193.75,-316.51 200.16,-308.08 189.89,-310.67 193.75,-316.51"/> -<text text-anchor="middle" x="174" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">25</text> +<path fill="none" stroke="#b1b2b2" d="M2013.53,-351.69C2027.09,-340.78 2044.78,-326.56 2059.62,-314.62"/> +<polygon fill="#b1b2b2" stroke="#b1b2b2" points="2061.93,-317.26 2067.53,-308.26 2057.55,-311.8 2061.93,-317.26"/> +<text text-anchor="middle" x="2047" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">25</text> </g> <!-- pymatlib.core.interpolators.interpolate_equidistant->pymatlib.core.models.wrapper --> -<g id="edge55" class="edge"> +<g id="edge54" class="edge"> <title>pymatlib.core.interpolators.interpolate_equidistant->pymatlib.core.models.wrapper</title> -<path fill="none" stroke="#b2b2b2" d="M1937.84,-191.88C1910.31,-180.15 1873.61,-164.5 1844.3,-152.01"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1845.64,-148.78 1835.07,-148.08 1842.89,-155.22 1845.64,-148.78"/> -<text text-anchor="middle" x="1895" y="-168.4" font-family="Verdana" font-size="7.00" fill="#000000">10</text> +<path fill="none" stroke="#b2b2b2" d="M1641,-191.69C1641,-181.89 1641,-169.42 1641,-158.33"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1644.5,-158.26 1641,-148.26 1637.5,-158.26 1644.5,-158.26"/> +<text text-anchor="middle" x="1645" y="-168.4" font-family="Verdana" font-size="7.00" fill="#000000">10</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_key_val_property->pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data --> -<g id="edge57" class="edge"> +<g id="edge56" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_key_val_property->pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data</title> -<path fill="none" stroke="#acb1b2" d="M2285.66,-539.98C2319.63,-528.1 2365.16,-512.17 2401.17,-499.58"/> -<polygon fill="#acb1b2" stroke="#acb1b2" points="2402.77,-502.72 2411.06,-496.12 2400.46,-496.12 2402.77,-502.72"/> -<text text-anchor="middle" x="2357" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +<path fill="none" stroke="#acb1b2" d="M797.14,-539.98C839.13,-527.89 895.64,-511.63 939.74,-498.93"/> +<polygon fill="#acb1b2" stroke="#acb1b2" points="940.88,-502.25 949.52,-496.12 938.94,-495.52 940.88,-502.25"/> +<text text-anchor="middle" x="883" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_key_definition --> -<g id="node59" class="node"> +<g id="node58" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_key_definition</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2320,-496 2076,-496 2076,-460 2320,-460 2320,-496"/> -<text text-anchor="middle" x="2198" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_key_definition</text> -<text text-anchor="middle" x="2198" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> -<text text-anchor="middle" x="2198" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000328s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="864,-496 612,-496 612,-460 864,-460 864,-496"/> +<text text-anchor="middle" x="738" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_key_definition</text> +<text text-anchor="middle" x="738" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="738" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000304s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_key_val_property->pymatlib.core.yaml_parser.MaterialConfigParser._process_key_definition --> -<g id="edge56" class="edge"> +<g id="edge55" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_key_val_property->pymatlib.core.yaml_parser.MaterialConfigParser._process_key_definition</title> -<path fill="none" stroke="#b2b2b2" d="M2228.34,-539.69C2223.3,-529.59 2216.82,-516.65 2211.16,-505.31"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2214.23,-503.64 2206.63,-496.26 2207.97,-506.77 2214.23,-503.64"/> -<text text-anchor="middle" x="2220" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +<path fill="none" stroke="#b2b2b2" d="M738,-539.69C738,-529.89 738,-517.42 738,-506.33"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="741.5,-506.26 738,-496.26 734.5,-506.26 741.5,-506.26"/> +<text text-anchor="middle" x="740" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> </g> <!-- pymatlib.core.yaml_parser._process_list_key --> -<g id="node60" class="node"> +<g id="node59" class="node"> <title>pymatlib.core.yaml_parser._process_list_key</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2335,-388 2177,-388 2177,-352 2335,-352 2335,-388"/> -<text text-anchor="middle" x="2256" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._process_list_key</text> -<text text-anchor="middle" x="2256" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> -<text text-anchor="middle" x="2256" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000070s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1104,-388 946,-388 946,-352 1104,-352 1104,-388"/> +<text text-anchor="middle" x="1025" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._process_list_key</text> +<text text-anchor="middle" x="1025" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> +<text text-anchor="middle" x="1025" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000081s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_key_definition->pymatlib.core.yaml_parser._process_list_key --> -<g id="edge58" class="edge"> +<g id="edge57" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_key_definition->pymatlib.core.yaml_parser._process_list_key</title> -<path fill="none" stroke="#b2b2b2" d="M2207.32,-459.97C2216.57,-443.07 2230.87,-416.94 2241.58,-397.36"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2244.78,-398.79 2246.51,-388.34 2238.64,-395.43 2244.78,-398.79"/> -<text text-anchor="middle" x="2237" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +<path fill="none" stroke="#b2b2b2" d="M784.11,-459.97C834.49,-441.36 915.18,-411.56 969.11,-391.64"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="970.36,-394.91 978.53,-388.16 967.93,-388.35 970.36,-394.91"/> +<text text-anchor="middle" x="925" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> </g> <!-- pymatlib.core.yaml_parser._process_equidistant_key --> -<g id="node61" class="node"> +<g id="node60" class="node"> <title>pymatlib.core.yaml_parser._process_equidistant_key</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2159,-388 1977,-388 1977,-352 2159,-352 2159,-388"/> -<text text-anchor="middle" x="2068" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._process_equidistant_key</text> -<text text-anchor="middle" x="2068" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> -<text text-anchor="middle" x="2068" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000089s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="928,-388 742,-388 742,-352 928,-352 928,-388"/> +<text text-anchor="middle" x="835" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._process_equidistant_key</text> +<text text-anchor="middle" x="835" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> +<text text-anchor="middle" x="835" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000085s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_key_definition->pymatlib.core.yaml_parser._process_equidistant_key --> -<g id="edge59" class="edge"> +<g id="edge58" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_key_definition->pymatlib.core.yaml_parser._process_equidistant_key</title> -<path fill="none" stroke="#b2b2b2" d="M2177.11,-459.97C2155.45,-442.3 2121.4,-414.54 2097.1,-394.73"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2099.23,-391.95 2089.27,-388.34 2094.81,-397.37 2099.23,-391.95"/> -<text text-anchor="middle" x="2154" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +<path fill="none" stroke="#b2b2b2" d="M753.58,-459.97C769.47,-442.61 794.28,-415.5 812.33,-395.77"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="814.96,-398.08 819.13,-388.34 809.8,-393.36 814.96,-398.08"/> +<text text-anchor="middle" x="802" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> </g> <!-- pymatlib.core.yaml_parser._process_equidistant_key->pymatlib.core.yaml_parser.<listcomp> --> -<g id="edge60" class="edge"> +<g id="edge59" class="edge"> <title>pymatlib.core.yaml_parser._process_equidistant_key->pymatlib.core.yaml_parser.<listcomp></title> -<path fill="none" stroke="#b2b2b2" d="M1976.75,-353.23C1973.8,-352.8 1970.88,-352.39 1968,-352 1782.98,-326.82 1564.31,-306.91 1450.55,-297.3"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1450.8,-293.81 1440.54,-296.46 1450.21,-300.78 1450.8,-293.81"/> -<text text-anchor="middle" x="1823" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +<path fill="none" stroke="#b2b2b2" d="M835,-351.69C835,-341.89 835,-329.42 835,-318.33"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="838.5,-318.26 835,-308.26 831.5,-318.26 838.5,-318.26"/> +<text text-anchor="middle" x="837" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> </g> <!-- pymatlib.core.yaml_parser._get_computation_methods --> -<g id="node63" class="node"> +<g id="node62" class="node"> <title>pymatlib.core.yaml_parser._get_computation_methods</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="562,-496 374,-496 374,-460 562,-460 562,-496"/> -<text text-anchor="middle" x="468" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._get_computation_methods</text> -<text text-anchor="middle" x="468" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> -<text text-anchor="middle" x="468" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000015s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1561,-496 1365,-496 1365,-460 1561,-460 1561,-496"/> +<text text-anchor="middle" x="1463" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._get_computation_methods</text> +<text text-anchor="middle" x="1463" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> +<text text-anchor="middle" x="1463" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000029s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser._get_computation_methods --> -<g id="edge61" class="edge"> +<g id="edge60" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser._get_computation_methods</title> -<path fill="none" stroke="#b2b2b2" d="M1070.23,-540.99C1067.12,-540.65 1064.04,-540.32 1061,-540 844,-517.07 788.48,-523.4 572,-496 571.9,-495.99 571.8,-495.97 571.69,-495.96"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="572.43,-492.53 562.06,-494.69 571.51,-499.47 572.43,-492.53"/> -<text text-anchor="middle" x="851" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +<path fill="none" stroke="#b2b2b2" d="M1494.12,-539.69C1488.94,-529.59 1482.31,-516.65 1476.49,-505.31"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1479.53,-503.56 1471.85,-496.26 1473.3,-506.76 1479.53,-503.56"/> +<text text-anchor="middle" x="1486" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> </g> <!-- pymatlib.core.yaml_parser._get_dependencies --> -<g id="node64" class="node"> +<g id="node63" class="node"> <title>pymatlib.core.yaml_parser._get_dependencies</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="741.5,-496 580.5,-496 580.5,-460 741.5,-460 741.5,-496"/> -<text text-anchor="middle" x="661" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._get_dependencies</text> -<text text-anchor="middle" x="661" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> -<text text-anchor="middle" x="661" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000028s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1745.5,-496 1578.5,-496 1578.5,-460 1745.5,-460 1745.5,-496"/> +<text text-anchor="middle" x="1662" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._get_dependencies</text> +<text text-anchor="middle" x="1662" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> +<text text-anchor="middle" x="1662" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000011s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser._get_dependencies --> -<g id="edge62" class="edge"> +<g id="edge61" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser._get_dependencies</title> -<path fill="none" stroke="#b2b2b2" d="M1070.28,-541.1C982.88,-530.04 865.09,-514.3 751.81,-496.09"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="752.35,-492.63 741.92,-494.49 751.23,-499.54 752.35,-492.63"/> -<text text-anchor="middle" x="925" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +<path fill="none" stroke="#b2b2b2" d="M1537.89,-539.88C1561.5,-528.3 1592.88,-512.91 1618.17,-500.5"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1619.75,-503.62 1627.19,-496.08 1616.67,-497.34 1619.75,-503.62"/> +<text text-anchor="middle" x="1589" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_dependencies --> -<g id="node65" class="node"> +<g id="node64" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_dependencies</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1379,-442 1135,-442 1135,-406 1379,-406 1379,-442"/> -<text text-anchor="middle" x="1257" y="-430.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_dependencies</text> -<text text-anchor="middle" x="1257" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> -<text text-anchor="middle" x="1257" y="-414.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000067s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1471.5,-442 1220.5,-442 1220.5,-406 1471.5,-406 1471.5,-442"/> +<text text-anchor="middle" x="1346" y="-430.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_dependencies</text> +<text text-anchor="middle" x="1346" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> +<text text-anchor="middle" x="1346" y="-414.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000066s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser.MaterialConfigParser._process_dependencies --> -<g id="edge63" class="edge"> +<g id="edge62" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser.MaterialConfigParser._process_dependencies</title> -<path fill="none" stroke="#b2b2b2" d="M1208.32,-539.74C1217.84,-517.31 1234.55,-477.91 1245.7,-451.63"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1248.99,-452.83 1249.68,-442.26 1242.55,-450.1 1248.99,-452.83"/> -<text text-anchor="middle" x="1220" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +<path fill="none" stroke="#b2b2b2" d="M1421.54,-539.88C1396.97,-530.8 1372.24,-516.98 1356,-496 1346.53,-483.76 1343.9,-466.67 1343.7,-452.32"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1347.2,-452.09 1343.94,-442.01 1340.21,-451.92 1347.2,-452.09"/> +<text text-anchor="middle" x="1384" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> </g> <!-- pymatlib.core.yaml_parser.<lambda> --> -<g id="node66" class="node"> +<g id="node65" class="node"> <title>pymatlib.core.yaml_parser.<lambda></title> -<polygon fill="#e53dc3" stroke="#e53dc3" points="890.5,-496 759.5,-496 759.5,-460 890.5,-460 890.5,-496"/> -<text text-anchor="middle" x="825" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.<lambda></text> -<text text-anchor="middle" x="825" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 544</text> -<text text-anchor="middle" x="825" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 213.404040s</text> +<polygon fill="#e53dc4" stroke="#e53dc4" points="2360.5,-496 2223.5,-496 2223.5,-460 2360.5,-460 2360.5,-496"/> +<text text-anchor="middle" x="2292" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.<lambda></text> +<text text-anchor="middle" x="2292" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 544</text> +<text text-anchor="middle" x="2292" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 204.723571s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser.<lambda> --> -<g id="edge64" class="edge"> +<g id="edge63" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser.<lambda></title> -<path fill="none" stroke="#a443b2" d="M1118.95,-539.98C1053.93,-526.49 963.81,-507.8 900.54,-494.67"/> -<polygon fill="#a443b2" stroke="#a443b2" points="901.13,-491.22 890.63,-492.61 899.71,-498.07 901.13,-491.22"/> -<text text-anchor="middle" x="1026" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +<path fill="none" stroke="#a443b2" d="M1639.22,-540.94C1642.17,-540.62 1645.1,-540.31 1648,-540 1851.47,-518.44 2091.51,-496.67 2213.01,-485.91"/> +<polygon fill="#a443b2" stroke="#a443b2" points="2213.67,-489.37 2223.33,-485 2213.06,-482.39 2213.67,-489.37"/> +<text text-anchor="middle" x="1897" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density --> -<g id="node71" class="node"> +<g id="node70" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density</title> -<polygon fill="#d355e5" stroke="#d355e5" points="1196,-496 952,-496 952,-460 1196,-460 1196,-496"/> -<text text-anchor="middle" x="1074" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density</text> -<text text-anchor="middle" x="1074" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="1074" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 213.977598s</text> +<polygon fill="#d356e5" stroke="#d356e5" points="2018,-496 1764,-496 1764,-460 2018,-460 2018,-496"/> +<text text-anchor="middle" x="1891" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density</text> +<text text-anchor="middle" x="1891" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1891" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 205.294672s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density --> -<g id="edge65" class="edge"> +<g id="edge64" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density</title> -<path fill="none" stroke="#a442b2" d="M1173.13,-539.88C1154.68,-528.55 1130.31,-513.58 1110.35,-501.32"/> -<polygon fill="#a442b2" stroke="#a442b2" points="1112.16,-498.33 1101.81,-496.08 1108.5,-504.29 1112.16,-498.33"/> -<text text-anchor="middle" x="1143" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#a442b2" d="M1587.67,-539.98C1649.15,-527.62 1732.4,-510.88 1796.12,-498.07"/> +<polygon fill="#a442b2" stroke="#a442b2" points="1797.06,-501.45 1806.18,-496.05 1795.68,-494.59 1797.06,-501.45"/> +<text text-anchor="middle" x="1710" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_dependencies->pymatlib.core.yaml_parser.<listcomp> --> -<g id="edge66" class="edge"> +<g id="edge65" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_dependencies->pymatlib.core.yaml_parser.<listcomp></title> -<path fill="none" stroke="#b2b2b2" d="M1257.76,-406C1259.22,-390.58 1263.37,-367.91 1275,-352 1286.98,-335.6 1304.84,-322.63 1322.03,-312.94"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1323.77,-315.98 1330.93,-308.17 1320.46,-309.81 1323.77,-315.98"/> -<text text-anchor="middle" x="1277" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +<path fill="none" stroke="#b2b2b2" d="M1392.77,-405.99C1400.05,-401.28 1406.6,-395.37 1411,-388 1419.2,-374.26 1421.7,-363.89 1411,-352 1378.46,-315.83 1065.86,-299.48 915.29,-293.66"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="915.3,-290.16 905.18,-293.28 915.03,-297.15 915.3,-290.16"/> +<text text-anchor="middle" x="1420" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> </g> <!-- pymatlib.core.models.thermal_diffusivity_by_heat_conductivity --> -<g id="node67" class="node"> +<g id="node66" class="node"> <title>pymatlib.core.models.thermal_diffusivity_by_heat_conductivity</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="804,-388 592,-388 592,-352 804,-352 804,-388"/> -<text text-anchor="middle" x="698" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models.thermal_diffusivity_by_heat_conductivity</text> -<text text-anchor="middle" x="698" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="698" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.171897s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2508,-388 2288,-388 2288,-352 2508,-352 2508,-388"/> +<text text-anchor="middle" x="2398" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models.thermal_diffusivity_by_heat_conductivity</text> +<text text-anchor="middle" x="2398" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="2398" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.183061s</text> </g> <!-- pymatlib.core.yaml_parser.<lambda>->pymatlib.core.models.thermal_diffusivity_by_heat_conductivity --> -<g id="edge67" class="edge"> +<g id="edge66" class="edge"> <title>pymatlib.core.yaml_parser.<lambda>->pymatlib.core.models.thermal_diffusivity_by_heat_conductivity</title> -<path fill="none" stroke="#b2b2b2" d="M804.6,-459.97C783.52,-442.38 750.46,-414.78 726.74,-394.99"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="728.7,-392.06 718.78,-388.34 724.21,-397.44 728.7,-392.06"/> -<text text-anchor="middle" x="782" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M2309.03,-459.97C2326.47,-442.53 2353.74,-415.26 2373.49,-395.51"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2376.06,-397.89 2380.66,-388.34 2371.11,-392.94 2376.06,-397.89"/> +<text text-anchor="middle" x="2362" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.models.energy_density_total_enthalpy --> -<g id="node70" class="node"> +<g id="node69" class="node"> <title>pymatlib.core.models.energy_density_total_enthalpy</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="574,-388 394,-388 394,-352 574,-352 574,-388"/> -<text text-anchor="middle" x="484" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models.energy_density_total_enthalpy</text> -<text text-anchor="middle" x="484" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="484" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.004307s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2714,-388 2526,-388 2526,-352 2714,-352 2714,-388"/> +<text text-anchor="middle" x="2620" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models.energy_density_total_enthalpy</text> +<text text-anchor="middle" x="2620" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="2620" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.004076s</text> </g> <!-- pymatlib.core.yaml_parser.<lambda>->pymatlib.core.models.energy_density_total_enthalpy --> -<g id="edge68" class="edge"> +<g id="edge67" class="edge"> <title>pymatlib.core.yaml_parser.<lambda>->pymatlib.core.models.energy_density_total_enthalpy</title> -<path fill="none" stroke="#b2b2b2" d="M759.3,-461.54C756.5,-461 753.73,-460.48 751,-460 687.49,-448.77 668.14,-462.53 607,-442 573.69,-430.82 539.35,-410.08 515.45,-393.9"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="517.36,-390.96 507.14,-388.17 513.39,-396.73 517.36,-390.96"/> -<text text-anchor="middle" x="609" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M2344.7,-459.97C2402.71,-441.22 2495.91,-411.1 2557.55,-391.18"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2558.72,-394.48 2567.16,-388.08 2556.57,-387.82 2558.72,-394.48"/> +<text text-anchor="middle" x="2506" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.typedefs.MaterialProperty.evalf --> -<g id="node75" class="node"> +<g id="node74" class="node"> <title>pymatlib.core.typedefs.MaterialProperty.evalf</title> -<polygon fill="#e53cc3" stroke="#e53cc3" points="376,-388 218,-388 218,-352 376,-352 376,-388"/> -<text text-anchor="middle" x="297" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.typedefs.MaterialProperty.evalf</text> -<text text-anchor="middle" x="297" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 544</text> -<text text-anchor="middle" x="297" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 213.951861s</text> +<polygon fill="#e53dc3" stroke="#e53dc3" points="2269.5,-388 2104.5,-388 2104.5,-352 2269.5,-352 2269.5,-388"/> +<text text-anchor="middle" x="2187" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.typedefs.MaterialProperty.evalf</text> +<text text-anchor="middle" x="2187" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 544</text> +<text text-anchor="middle" x="2187" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 205.269585s</text> </g> <!-- pymatlib.core.yaml_parser.<lambda>->pymatlib.core.typedefs.MaterialProperty.evalf --> -<g id="edge69" class="edge"> +<g id="edge68" class="edge"> <title>pymatlib.core.yaml_parser.<lambda>->pymatlib.core.typedefs.MaterialProperty.evalf</title> -<path fill="none" stroke="#b22f97" d="M759.33,-461.38C756.52,-460.88 753.74,-460.42 751,-460 648.32,-444.33 619.92,-462.02 518,-442 458.87,-430.38 393.42,-408.12 349.2,-391.6"/> -<polygon fill="#b22f97" stroke="#b22f97" points="350.41,-388.32 339.82,-388.06 347.94,-394.87 350.41,-388.32"/> -<text text-anchor="middle" x="524" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">542</text> +<path fill="none" stroke="#b22f98" d="M2275.13,-459.97C2257.86,-442.53 2230.85,-415.26 2211.28,-395.51"/> +<polygon fill="#b22f98" stroke="#b22f98" points="2213.7,-392.98 2204.18,-388.34 2208.73,-397.91 2213.7,-392.98"/> +<text text-anchor="middle" x="2261" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">542</text> </g> <!-- pymatlib.core.models._validate_positive --> -<g id="node68" class="node"> +<g id="node67" class="node"> <title>pymatlib.core.models._validate_positive</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="579.5,-308 438.5,-308 438.5,-272 579.5,-272 579.5,-308"/> -<text text-anchor="middle" x="509" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models._validate_positive</text> -<text text-anchor="middle" x="509" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> -<text text-anchor="middle" x="509" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000016s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2471,-308 2325,-308 2325,-272 2471,-272 2471,-308"/> +<text text-anchor="middle" x="2398" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models._validate_positive</text> +<text text-anchor="middle" x="2398" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> +<text text-anchor="middle" x="2398" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000015s</text> </g> <!-- pymatlib.core.models.thermal_diffusivity_by_heat_conductivity->pymatlib.core.models._validate_positive --> -<g id="edge70" class="edge"> +<g id="edge69" class="edge"> <title>pymatlib.core.models.thermal_diffusivity_by_heat_conductivity->pymatlib.core.models._validate_positive</title> -<path fill="none" stroke="#b2b2b2" d="M656.52,-351.88C628.09,-340.15 590.18,-324.5 559.92,-312.01"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="560.96,-308.66 550.38,-308.08 558.29,-315.13 560.96,-308.66"/> -<text text-anchor="middle" x="611" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M2398,-351.69C2398,-341.89 2398,-329.42 2398,-318.33"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2401.5,-318.26 2398,-308.26 2394.5,-318.26 2401.5,-318.26"/> +<text text-anchor="middle" x="2400" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.models._prepare_material_expressions --> -<g id="node69" class="node"> +<g id="node68" class="node"> <title>pymatlib.core.models._prepare_material_expressions</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="789,-308 607,-308 607,-272 789,-272 789,-308"/> -<text text-anchor="middle" x="698" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models._prepare_material_expressions</text> -<text text-anchor="middle" x="698" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> -<text text-anchor="middle" x="698" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000391s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="2679,-308 2489,-308 2489,-272 2679,-272 2679,-308"/> +<text text-anchor="middle" x="2584" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models._prepare_material_expressions</text> +<text text-anchor="middle" x="2584" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> +<text text-anchor="middle" x="2584" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000391s</text> </g> <!-- pymatlib.core.models.thermal_diffusivity_by_heat_conductivity->pymatlib.core.models._prepare_material_expressions --> -<g id="edge71" class="edge"> +<g id="edge70" class="edge"> <title>pymatlib.core.models.thermal_diffusivity_by_heat_conductivity->pymatlib.core.models._prepare_material_expressions</title> -<path fill="none" stroke="#b2b2b2" d="M698,-351.69C698,-341.89 698,-329.42 698,-318.33"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="701.5,-318.26 698,-308.26 694.5,-318.26 701.5,-318.26"/> -<text text-anchor="middle" x="700" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M2438.82,-351.88C2466.8,-340.15 2504.1,-324.5 2533.89,-312.01"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2535.41,-315.17 2543.28,-308.08 2532.7,-308.72 2535.41,-315.17"/> +<text text-anchor="middle" x="2498" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.models._prepare_material_expressions->pymatlib.core.models.wrapper --> -<g id="edge72" class="edge"> +<g id="edge71" class="edge"> <title>pymatlib.core.models._prepare_material_expressions->pymatlib.core.models.wrapper</title> -<path fill="none" stroke="#b2b2b2" d="M789.17,-275.87C1005,-244.78 1543.04,-167.29 1729.86,-140.38"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1730.41,-143.84 1739.81,-138.95 1729.42,-136.91 1730.41,-143.84"/> -<text text-anchor="middle" x="1357" y="-208.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +<path fill="none" stroke="#b2b2b2" d="M2488.83,-273.05C2298.85,-241.22 1876.59,-170.47 1710.26,-142.6"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1710.59,-139.11 1700.15,-140.91 1709.43,-146.02 1710.59,-139.11"/> +<text text-anchor="middle" x="2208" y="-208.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> </g> <!-- pymatlib.core.models.energy_density_total_enthalpy->pymatlib.core.models._validate_positive --> -<g id="edge73" class="edge"> +<g id="edge72" class="edge"> <title>pymatlib.core.models.energy_density_total_enthalpy->pymatlib.core.models._validate_positive</title> -<path fill="none" stroke="#b2b2b2" d="M489.55,-351.69C492.72,-341.79 496.77,-329.16 500.35,-317.99"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="503.75,-318.85 503.47,-308.26 497.08,-316.72 503.75,-318.85"/> -<text text-anchor="middle" x="499" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M2534.57,-351.92C2515.34,-347.02 2495.23,-341.06 2477,-334 2462.45,-328.37 2447.22,-320.58 2434.06,-313.18"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2435.72,-310.1 2425.31,-308.15 2432.23,-316.17 2435.72,-310.1"/> +<text text-anchor="middle" x="2479" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.models.energy_density_total_enthalpy->pymatlib.core.models._prepare_material_expressions --> -<g id="edge74" class="edge"> +<g id="edge73" class="edge"> <title>pymatlib.core.models.energy_density_total_enthalpy->pymatlib.core.models._prepare_material_expressions</title> -<path fill="none" stroke="#b2b2b2" d="M560.93,-351.98C579.55,-346.98 599.21,-340.95 617,-334 631.7,-328.25 647.16,-320.51 660.59,-313.18"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="662.49,-316.12 669.52,-308.2 659.09,-310.01 662.49,-316.12"/> -<text text-anchor="middle" x="637" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M2612.01,-351.69C2607.4,-341.69 2601.5,-328.91 2596.3,-317.65"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="2599.34,-315.88 2591.97,-308.26 2592.98,-318.81 2599.34,-315.88"/> +<text text-anchor="middle" x="2605" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density->pymatlib.core.yaml_parser.<listcomp> --> -<g id="edge75" class="edge"> +<g id="edge74" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density->pymatlib.core.yaml_parser.<listcomp></title> -<path fill="none" stroke="#b2b2b2" d="M1069.39,-459.62C1063.47,-432.98 1056.82,-382 1083,-352 1110.36,-320.66 1218.91,-304.57 1295.13,-296.97"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1295.57,-300.45 1305.19,-296 1294.9,-293.48 1295.57,-300.45"/> -<text text-anchor="middle" x="1085" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M1772.52,-459.96C1741.62,-454.86 1708.45,-448.78 1678,-442 1591.89,-422.82 1565.63,-427.99 1487,-388 1447.22,-367.77 1449.72,-341.86 1408,-326 1363.22,-308.98 1062.51,-297.78 915.55,-293.26"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="915.34,-289.76 905.24,-292.95 915.13,-296.75 915.34,-289.76"/> +<text text-anchor="middle" x="1489" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.yaml_parser.<genexpr> --> -<g id="node72" class="node"> +<g id="node71" class="node"> <title>pymatlib.core.yaml_parser.<genexpr></title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1230,-388 1096,-388 1096,-352 1230,-352 1230,-388"/> -<text text-anchor="middle" x="1163" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.<genexpr></text> -<text text-anchor="middle" x="1163" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 3</text> -<text text-anchor="middle" x="1163" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000006s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1640,-388 1500,-388 1500,-352 1640,-352 1640,-388"/> +<text text-anchor="middle" x="1570" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.<genexpr></text> +<text text-anchor="middle" x="1570" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 3</text> +<text text-anchor="middle" x="1570" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000005s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density->pymatlib.core.yaml_parser.<genexpr> --> -<g id="edge76" class="edge"> +<g id="edge75" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density->pymatlib.core.yaml_parser.<genexpr></title> -<path fill="none" stroke="#b2b2b2" d="M1083.87,-459.72C1092.83,-444.73 1106.93,-422.86 1122,-406 1125.42,-402.17 1129.26,-398.38 1133.17,-394.78"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1135.52,-397.38 1140.72,-388.14 1130.9,-392.12 1135.52,-397.38"/> -<text text-anchor="middle" x="1124" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">3</text> +<path fill="none" stroke="#b2b2b2" d="M1839.43,-459.97C1782.77,-441.26 1691.82,-411.23 1631.49,-391.31"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1632.31,-387.89 1621.71,-388.08 1630.11,-394.54 1632.31,-387.89"/> +<text text-anchor="middle" x="1780" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">3</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_edta --> -<g id="node73" class="node"> +<g id="node72" class="node"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_edta</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1037.5,-388 822.5,-388 822.5,-352 1037.5,-352 1037.5,-388"/> -<text text-anchor="middle" x="930" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_edta</text> -<text text-anchor="middle" x="930" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="930" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000095s</text> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1879.5,-388 1658.5,-388 1658.5,-352 1879.5,-352 1879.5,-388"/> +<text text-anchor="middle" x="1769" y="-376.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_edta</text> +<text text-anchor="middle" x="1769" y="-368.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1769" y="-360.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000182s</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density->pymatlib.core.yaml_parser.MaterialConfigParser._process_edta --> -<g id="edge77" class="edge"> +<g id="edge76" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density->pymatlib.core.yaml_parser.MaterialConfigParser._process_edta</title> -<path fill="none" stroke="#b2b2b2" d="M1050.86,-459.97C1026.76,-442.23 988.82,-414.3 961.88,-394.47"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="963.69,-391.45 953.56,-388.34 959.54,-397.09 963.69,-391.45"/> -<text text-anchor="middle" x="1025" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M1871.4,-459.97C1851.15,-442.38 1819.39,-414.78 1796.61,-394.99"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1798.8,-392.26 1788.96,-388.34 1794.21,-397.54 1798.8,-392.26"/> +<text text-anchor="middle" x="1850" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density->pymatlib.core.typedefs.MaterialProperty.evalf --> -<g id="edge78" class="edge"> +<g id="edge77" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density->pymatlib.core.typedefs.MaterialProperty.evalf</title> -<path fill="none" stroke="#a442b2" d="M951.61,-464.93C858.63,-455.67 744.86,-444.13 734,-442 678.1,-431.04 667.02,-416.32 611,-406 515,-388.32 486.61,-400.74 386.05,-388.02"/> -<polygon fill="#a442b2" stroke="#a442b2" points="386.46,-384.54 376.09,-386.71 385.54,-391.48 386.46,-384.54"/> -<text text-anchor="middle" x="736" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +<path fill="none" stroke="#a442b2" d="M1938.56,-459.97C1990.51,-441.36 2073.73,-411.56 2129.36,-391.64"/> +<polygon fill="#a442b2" stroke="#a442b2" points="2130.84,-394.83 2139.07,-388.16 2128.48,-388.24 2130.84,-394.83"/> +<text text-anchor="middle" x="2084" y="-422.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> </g> <!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_edta->pymatlib.core.yaml_parser.<listcomp> --> -<g id="edge79" class="edge"> +<g id="edge78" class="edge"> <title>pymatlib.core.yaml_parser.MaterialConfigParser._process_edta->pymatlib.core.yaml_parser.<listcomp></title> -<path fill="none" stroke="#b2b2b2" d="M975.94,-351.9C1001.78,-342.92 1034.81,-332.46 1065,-326 1142.39,-309.44 1232.51,-300.36 1295.19,-295.63"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1295.68,-299.1 1305.4,-294.87 1295.17,-292.12 1295.68,-299.1"/> -<text text-anchor="middle" x="1067" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<path fill="none" stroke="#b2b2b2" d="M1671.34,-351.96C1616.21,-342.93 1545.94,-332.42 1483,-326 1279.14,-305.22 1037.85,-296.3 915.23,-292.88"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="915.26,-289.38 905.17,-292.6 915.07,-296.37 915.26,-289.38"/> +<text text-anchor="middle" x="1547" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> -<!-- pymatlib.core.yaml_parser._process_float_delta --> -<g id="node74" class="node"> -<title>pymatlib.core.yaml_parser._process_float_delta</title> -<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1013,-308 847,-308 847,-272 1013,-272 1013,-308"/> -<text text-anchor="middle" x="930" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._process_float_delta</text> -<text text-anchor="middle" x="930" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> -<text text-anchor="middle" x="930" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000030s</text> +<!-- pymatlib.core.yaml_parser._process_float_step --> +<g id="node73" class="node"> +<title>pymatlib.core.yaml_parser._process_float_step</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1852.5,-308 1685.5,-308 1685.5,-272 1852.5,-272 1852.5,-308"/> +<text text-anchor="middle" x="1769" y="-296.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._process_float_step</text> +<text text-anchor="middle" x="1769" y="-288.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1769" y="-280.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000028s</text> </g> -<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_edta->pymatlib.core.yaml_parser._process_float_delta --> -<g id="edge80" class="edge"> -<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_edta->pymatlib.core.yaml_parser._process_float_delta</title> -<path fill="none" stroke="#b2b2b2" d="M930,-351.69C930,-341.89 930,-329.42 930,-318.33"/> -<polygon fill="#b2b2b2" stroke="#b2b2b2" points="933.5,-318.26 930,-308.26 926.5,-318.26 933.5,-318.26"/> -<text text-anchor="middle" x="932" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_edta->pymatlib.core.yaml_parser._process_float_step --> +<g id="edge79" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_edta->pymatlib.core.yaml_parser._process_float_step</title> +<path fill="none" stroke="#b2b2b2" d="M1769,-351.69C1769,-341.89 1769,-329.42 1769,-318.33"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1772.5,-318.26 1769,-308.26 1765.5,-318.26 1772.5,-318.26"/> +<text text-anchor="middle" x="1771" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> </g> <!-- pymatlib.core.typedefs.MaterialProperty.evalf->pymatlib.core.typedefs.<genexpr> --> -<g id="edge81" class="edge"> +<g id="edge80" class="edge"> <title>pymatlib.core.typedefs.MaterialProperty.evalf->pymatlib.core.typedefs.<genexpr></title> -<path fill="none" stroke="#7778b2" d="M281.24,-351.69C271.68,-341.19 259.32,-327.61 248.72,-315.96"/> -<polygon fill="#7778b2" stroke="#7778b2" points="251.03,-313.3 241.71,-308.26 245.86,-318.01 251.03,-313.3"/> -<text text-anchor="middle" x="271" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">1632</text> +<path fill="none" stroke="#7778b2" d="M2165.25,-351.69C2151.55,-340.78 2133.68,-326.56 2118.68,-314.62"/> +<polygon fill="#7778b2" stroke="#7778b2" points="2120.69,-311.75 2110.69,-308.26 2116.33,-317.23 2120.69,-311.75"/> +<text text-anchor="middle" x="2148" y="-328.4" font-family="Verdana" font-size="7.00" fill="#000000">1632</text> </g> </g> </svg> diff --git a/apps/callgraph_images/yaml_parser_callgraph_reduced.svg b/apps/callgraph_images/yaml_parser_callgraph_reduced.svg new file mode 100644 index 0000000000000000000000000000000000000000..abd8df47b3e660f4f7bfd7b27ba7c11608e29794 --- /dev/null +++ b/apps/callgraph_images/yaml_parser_callgraph_reduced.svg @@ -0,0 +1,874 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.50.0 (0) + --> +<!-- Title: G Pages: 1 --> +<svg width="1922pt" height="956pt" + viewBox="0.00 0.00 1922.00 956.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 952)"> +<title>G</title> +<polygon fill="white" stroke="transparent" points="-4,4 -4,-952 1918,-952 1918,4 -4,4"/> +<text text-anchor="middle" x="957" y="-6.4" font-family="Verdana" font-size="7.00" fill="#000000" fill-opacity="0.498039">Generated by Python Call Graph v1.1.3</text> +<g id="clust1" class="cluster"> +<title>cluster___main__</title> +<polygon fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.800000" points="493,-869 493,-940 575,-940 575,-869 493,-869"/> +<text text-anchor="middle" x="534" y="-928" font-family="Verdana" font-size="10.00">__main__</text> +</g> +<g id="clust2" class="cluster"> +<title>cluster_pymatlib</title> +<polygon fill="none" stroke="#000000" stroke-width="2" stroke-opacity="0.800000" points="8,-24 8,-843 1906,-843 1906,-24 8,-24"/> +<text text-anchor="middle" x="957" y="-831" font-family="Verdana" font-size="10.00">pymatlib</text> +</g> +<!-- __main__ --> +<g id="node1" class="node"> +<title>__main__</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="567,-913 501,-913 501,-877 567,-877 567,-913"/> +<text text-anchor="middle" x="534" y="-901.4" font-family="Verdana" font-size="7.00" fill="#000000">__main__</text> +<text text-anchor="middle" x="534" y="-893.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="534" y="-885.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000000s</text> +</g> +<!-- pymatlib.core.yaml_parser.create_alloy_from_yaml --> +<g id="node4" class="node"> +<title>pymatlib.core.yaml_parser.create_alloy_from_yaml</title> +<polygon fill="#e54ce4" stroke="#e54ce4" points="624,-816 444,-816 444,-780 624,-780 624,-816"/> +<text text-anchor="middle" x="534" y="-804.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.create_alloy_from_yaml</text> +<text text-anchor="middle" x="534" y="-796.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="534" y="-788.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 724.627736s</text> +</g> +<!-- __main__->pymatlib.core.yaml_parser.create_alloy_from_yaml --> +<g id="edge1" class="edge"> +<title>__main__->pymatlib.core.yaml_parser.create_alloy_from_yaml</title> +<path fill="none" stroke="#b23bb2" d="M534,-876.58C534,-862.65 534,-842.86 534,-826.76"/> +<polygon fill="#b23bb2" stroke="#b23bb2" points="537.5,-826.31 534,-816.31 530.5,-826.31 537.5,-826.31"/> +<text text-anchor="middle" x="536" y="-853.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.yaml_parser.PropertyType --> +<g id="node2" class="node"> +<title>pymatlib.core.yaml_parser.PropertyType</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1800,-816 1650,-816 1650,-780 1800,-780 1800,-816"/> +<text text-anchor="middle" x="1725" y="-804.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.PropertyType</text> +<text text-anchor="middle" x="1725" y="-796.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1725" y="-788.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000726s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser --> +<g id="node3" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1360,-816 1186,-816 1186,-780 1360,-780 1360,-816"/> +<text text-anchor="middle" x="1273" y="-804.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser</text> +<text text-anchor="middle" x="1273" y="-796.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="1273" y="-788.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.001888s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser.__init__ --> +<g id="node5" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser.__init__</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="467.5,-736 270.5,-736 270.5,-700 467.5,-700 467.5,-736"/> +<text text-anchor="middle" x="369" y="-724.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser.__init__</text> +<text text-anchor="middle" x="369" y="-716.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="369" y="-708.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.081560s</text> +</g> +<!-- pymatlib.core.yaml_parser.create_alloy_from_yaml->pymatlib.core.yaml_parser.MaterialConfigParser.__init__ --> +<g id="edge2" class="edge"> +<title>pymatlib.core.yaml_parser.create_alloy_from_yaml->pymatlib.core.yaml_parser.MaterialConfigParser.__init__</title> +<path fill="none" stroke="#b2b2b2" d="M497.79,-779.88C473.29,-768.3 440.73,-752.91 414.48,-740.5"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="415.66,-737.19 405.13,-736.08 412.67,-743.52 415.66,-737.19"/> +<text text-anchor="middle" x="458" y="-756.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser.create_alloy --> +<g id="node11" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser.create_alloy</title> +<polygon fill="#e54ce4" stroke="#e54ce4" points="885,-736 673,-736 673,-700 885,-700 885,-736"/> +<text text-anchor="middle" x="779" y="-724.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser.create_alloy</text> +<text text-anchor="middle" x="779" y="-716.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="779" y="-708.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 724.545973s</text> +</g> +<!-- pymatlib.core.yaml_parser.create_alloy_from_yaml->pymatlib.core.yaml_parser.MaterialConfigParser.create_alloy --> +<g id="edge3" class="edge"> +<title>pymatlib.core.yaml_parser.create_alloy_from_yaml->pymatlib.core.yaml_parser.MaterialConfigParser.create_alloy</title> +<path fill="none" stroke="#b23bb2" d="M587.46,-779.98C625.18,-767.97 675.87,-751.83 715.63,-739.17"/> +<polygon fill="#b23bb2" stroke="#b23bb2" points="716.76,-742.49 725.23,-736.12 714.64,-735.82 716.76,-742.49"/> +<text text-anchor="middle" x="665" y="-756.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._load_yaml --> +<g id="node6" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._load_yaml</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="237,-656 25,-656 25,-620 237,-620 237,-656"/> +<text text-anchor="middle" x="131" y="-644.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._load_yaml</text> +<text text-anchor="middle" x="131" y="-636.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="131" y="-628.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.079042s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser.__init__->pymatlib.core.yaml_parser.MaterialConfigParser._load_yaml --> +<g id="edge4" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser.__init__->pymatlib.core.yaml_parser.MaterialConfigParser._load_yaml</title> +<path fill="none" stroke="#b2b2b2" d="M317.06,-699.98C280.5,-688 231.39,-671.9 192.8,-659.26"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="193.83,-655.91 183.24,-656.12 191.65,-662.56 193.83,-655.91"/> +<text text-anchor="middle" x="259" y="-676.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._validate_config --> +<g id="node7" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._validate_config</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="482.5,-656 255.5,-656 255.5,-620 482.5,-620 482.5,-656"/> +<text text-anchor="middle" x="369" y="-644.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._validate_config</text> +<text text-anchor="middle" x="369" y="-636.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="369" y="-628.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000837s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser.__init__->pymatlib.core.yaml_parser.MaterialConfigParser._validate_config --> +<g id="edge5" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser.__init__->pymatlib.core.yaml_parser.MaterialConfigParser._validate_config</title> +<path fill="none" stroke="#b2b2b2" d="M369,-699.69C369,-689.89 369,-677.42 369,-666.33"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="372.5,-666.26 369,-656.26 365.5,-666.26 372.5,-666.26"/> +<text text-anchor="middle" x="371" y="-676.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._validate_property_names --> +<g id="node8" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._validate_property_names</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="482,-576 222,-576 222,-540 482,-540 482,-576"/> +<text text-anchor="middle" x="352" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._validate_property_names</text> +<text text-anchor="middle" x="352" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="352" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000052s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._validate_config->pymatlib.core.yaml_parser.MaterialConfigParser._validate_property_names --> +<g id="edge6" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._validate_config->pymatlib.core.yaml_parser.MaterialConfigParser._validate_property_names</title> +<path fill="none" stroke="#b2b2b2" d="M365.23,-619.69C363.09,-609.89 360.37,-597.42 357.96,-586.33"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="361.31,-585.29 355.76,-576.26 354.47,-586.78 361.31,-585.29"/> +<text text-anchor="middle" x="363" y="-596.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._validate_required_fields --> +<g id="node9" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._validate_required_fields</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="755.5,-576 500.5,-576 500.5,-540 755.5,-540 755.5,-576"/> +<text text-anchor="middle" x="628" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._validate_required_fields</text> +<text text-anchor="middle" x="628" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="628" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000029s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._validate_config->pymatlib.core.yaml_parser.MaterialConfigParser._validate_required_fields --> +<g id="edge7" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._validate_config->pymatlib.core.yaml_parser.MaterialConfigParser._validate_required_fields</title> +<path fill="none" stroke="#b2b2b2" d="M425.52,-619.98C465.56,-607.92 519.43,-591.7 561.54,-579.01"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="562.59,-582.35 571.16,-576.12 560.57,-575.65 562.59,-582.35"/> +<text text-anchor="middle" x="508" y="-596.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.yaml_parser._validate_property_values --> +<g id="node10" class="node"> +<title>pymatlib.core.yaml_parser._validate_property_values</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="204,-576 16,-576 16,-540 204,-540 204,-576"/> +<text text-anchor="middle" x="110" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._validate_property_values</text> +<text text-anchor="middle" x="110" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="110" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000371s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._validate_config->pymatlib.core.yaml_parser._validate_property_values --> +<g id="edge8" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._validate_config->pymatlib.core.yaml_parser._validate_property_values</title> +<path fill="none" stroke="#b2b2b2" d="M312.48,-619.98C272.44,-607.92 218.57,-591.7 176.46,-579.01"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="177.43,-575.65 166.84,-576.12 175.41,-582.35 177.43,-575.65"/> +<text text-anchor="middle" x="249" y="-596.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._get_elements --> +<g id="node12" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._get_elements</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="889.5,-656 668.5,-656 668.5,-620 889.5,-620 889.5,-656"/> +<text text-anchor="middle" x="779" y="-644.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._get_elements</text> +<text text-anchor="middle" x="779" y="-636.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="779" y="-628.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.021451s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser.create_alloy->pymatlib.core.yaml_parser.MaterialConfigParser._get_elements --> +<g id="edge9" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser.create_alloy->pymatlib.core.yaml_parser.MaterialConfigParser._get_elements</title> +<path fill="none" stroke="#b2b2b2" d="M779,-699.69C779,-689.89 779,-677.42 779,-666.33"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="782.5,-666.26 779,-656.26 775.5,-666.26 782.5,-666.26"/> +<text text-anchor="middle" x="781" y="-676.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_properties --> +<g id="node13" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_properties</title> +<polygon fill="#e54ce4" stroke="#e54ce4" points="1401,-656 1161,-656 1161,-620 1401,-620 1401,-656"/> +<text text-anchor="middle" x="1281" y="-644.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_properties</text> +<text text-anchor="middle" x="1281" y="-636.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="1281" y="-628.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 724.519775s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser.create_alloy->pymatlib.core.yaml_parser.MaterialConfigParser._process_properties --> +<g id="edge10" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser.create_alloy->pymatlib.core.yaml_parser.MaterialConfigParser._process_properties</title> +<path fill="none" stroke="#b23bb2" d="M885.15,-700.51C966.03,-687.94 1077.4,-670.63 1161.42,-657.58"/> +<polygon fill="#b23bb2" stroke="#b23bb2" points="1162.18,-661 1171.52,-656.01 1161.11,-654.09 1162.18,-661"/> +<text text-anchor="middle" x="1047" y="-676.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._categorize_properties --> +<g id="node14" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._categorize_properties</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1588,-576 1340,-576 1340,-540 1588,-540 1588,-576"/> +<text text-anchor="middle" x="1464" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._categorize_properties</text> +<text text-anchor="middle" x="1464" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="1464" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.002769s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser.MaterialConfigParser._categorize_properties --> +<g id="edge11" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser.MaterialConfigParser._categorize_properties</title> +<path fill="none" stroke="#b2b2b2" d="M1321.16,-619.88C1348.69,-608.15 1385.39,-592.5 1414.7,-580.01"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1416.11,-583.22 1423.93,-576.08 1413.36,-576.78 1416.11,-583.22"/> +<text text-anchor="middle" x="1379" y="-596.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.yaml_parser._process_constant_property --> +<g id="node20" class="node"> +<title>pymatlib.core.yaml_parser._process_constant_property</title> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="1802,-576 1606,-576 1606,-540 1802,-540 1802,-576"/> +<text text-anchor="middle" x="1704" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._process_constant_property</text> +<text text-anchor="middle" x="1704" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 12</text> +<text text-anchor="middle" x="1704" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000061s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser._process_constant_property --> +<g id="edge12" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser._process_constant_property</title> +<path fill="none" stroke="#b1b2b2" d="M1373.31,-619.98C1440.61,-607.57 1531.84,-590.75 1601.42,-577.92"/> +<polygon fill="#b1b2b2" stroke="#b1b2b2" points="1602.33,-581.31 1611.53,-576.05 1601.06,-574.42 1602.33,-581.31"/> +<text text-anchor="middle" x="1509" y="-596.4" font-family="Verdana" font-size="7.00" fill="#000000">12</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_file_property --> +<g id="node21" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_file_property</title> +<polygon fill="#dee4e5" stroke="#dee4e5" points="1022,-576 774,-576 774,-540 1022,-540 1022,-576"/> +<text text-anchor="middle" x="898" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_file_property</text> +<text text-anchor="middle" x="898" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 12</text> +<text text-anchor="middle" x="898" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 29.036693s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser.MaterialConfigParser._process_file_property --> +<g id="edge13" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser.MaterialConfigParser._process_file_property</title> +<path fill="none" stroke="#adb2b2" d="M1197.42,-619.98C1136.73,-607.62 1054.56,-590.88 991.65,-578.07"/> +<polygon fill="#adb2b2" stroke="#adb2b2" points="992.23,-574.62 981.73,-576.05 990.83,-581.48 992.23,-574.62"/> +<text text-anchor="middle" x="1104" y="-596.4" font-family="Verdana" font-size="7.00" fill="#000000">12</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_key_val_property --> +<g id="node30" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_key_val_property</title> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="1302,-576 1040,-576 1040,-540 1302,-540 1302,-576"/> +<text text-anchor="middle" x="1171" y="-564.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_key_val_property</text> +<text text-anchor="middle" x="1171" y="-556.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 8</text> +<text text-anchor="middle" x="1171" y="-548.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.354961s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser.MaterialConfigParser._process_key_val_property --> +<g id="edge14" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser.MaterialConfigParser._process_key_val_property</title> +<path fill="none" stroke="#b2b2b2" d="M1256.86,-619.88C1241.24,-608.81 1220.72,-594.25 1203.65,-582.15"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1205.27,-579.01 1195.08,-576.08 1201.22,-584.72 1205.27,-579.01"/> +<text text-anchor="middle" x="1231" y="-596.4" font-family="Verdana" font-size="7.00" fill="#000000">8</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property --> +<g id="node34" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property</title> +<polygon fill="#db51e5" stroke="#db51e5" points="1192,-416 920,-416 920,-380 1192,-380 1192,-416"/> +<text text-anchor="middle" x="1056" y="-404.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property</text> +<text text-anchor="middle" x="1056" y="-396.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 12</text> +<text text-anchor="middle" x="1056" y="-388.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 695.175993s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property --> +<g id="edge15" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_properties->pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property</title> +<path fill="none" stroke="#aa3fb2" d="M1294.12,-619.99C1307.89,-599.9 1325.66,-565.93 1311,-540 1274.68,-475.76 1196.95,-438.95 1136.8,-419.17"/> +<polygon fill="#aa3fb2" stroke="#aa3fb2" points="1137.51,-415.72 1126.92,-416.02 1135.39,-422.39 1137.51,-415.72"/> +<text text-anchor="middle" x="1301" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">10</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type --> +<g id="node15" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type</title> +<polygon fill="#e2e5e5" stroke="#e2e5e5" points="1602,-496 1340,-496 1340,-460 1602,-460 1602,-496"/> +<text text-anchor="middle" x="1471" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type</text> +<text text-anchor="middle" x="1471" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 46</text> +<text text-anchor="middle" x="1471" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.001743s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._categorize_properties->pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type --> +<g id="edge16" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._categorize_properties->pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type</title> +<path fill="none" stroke="#b0b2b2" d="M1465.55,-539.69C1466.43,-529.89 1467.55,-517.42 1468.55,-506.33"/> +<polygon fill="#b0b2b2" stroke="#b0b2b2" points="1472.04,-506.54 1469.45,-496.26 1465.07,-505.91 1472.04,-506.54"/> +<text text-anchor="middle" x="1471" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">46</text> +</g> +<!-- pymatlib.core.yaml_parser._is_numeric --> +<g id="node16" class="node"> +<title>pymatlib.core.yaml_parser._is_numeric</title> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="1353.5,-416 1210.5,-416 1210.5,-380 1353.5,-380 1353.5,-416"/> +<text text-anchor="middle" x="1282" y="-404.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._is_numeric</text> +<text text-anchor="middle" x="1282" y="-396.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 14</text> +<text text-anchor="middle" x="1282" y="-388.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000072s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type->pymatlib.core.yaml_parser._is_numeric --> +<g id="edge17" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type->pymatlib.core.yaml_parser._is_numeric</title> +<path fill="none" stroke="#b1b2b2" d="M1429.52,-459.88C1401.09,-448.15 1363.18,-432.5 1332.92,-420.01"/> +<polygon fill="#b1b2b2" stroke="#b1b2b2" points="1333.96,-416.66 1323.38,-416.08 1331.29,-423.13 1333.96,-416.66"/> +<text text-anchor="middle" x="1386" y="-436.4" font-family="Verdana" font-size="7.00" fill="#000000">14</text> +</g> +<!-- pymatlib.core.yaml_parser._is_data_file --> +<g id="node17" class="node"> +<title>pymatlib.core.yaml_parser._is_data_file</title> +<polygon fill="#e3e5e5" stroke="#e3e5e5" points="1514.5,-416 1371.5,-416 1371.5,-380 1514.5,-380 1514.5,-416"/> +<text text-anchor="middle" x="1443" y="-404.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._is_data_file</text> +<text text-anchor="middle" x="1443" y="-396.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 34</text> +<text text-anchor="middle" x="1443" y="-388.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000279s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type->pymatlib.core.yaml_parser._is_data_file --> +<g id="edge18" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type->pymatlib.core.yaml_parser._is_data_file</title> +<path fill="none" stroke="#b0b2b2" d="M1464.79,-459.69C1461.23,-449.79 1456.7,-437.16 1452.69,-425.99"/> +<polygon fill="#b0b2b2" stroke="#b0b2b2" points="1455.87,-424.49 1449.2,-416.26 1449.28,-426.86 1455.87,-424.49"/> +<text text-anchor="middle" x="1461" y="-436.4" font-family="Verdana" font-size="7.00" fill="#000000">34</text> +</g> +<!-- pymatlib.core.yaml_parser._is_key_val_property --> +<g id="node18" class="node"> +<title>pymatlib.core.yaml_parser._is_key_val_property</title> +<polygon fill="#e3e5e5" stroke="#e3e5e5" points="1703.5,-416 1532.5,-416 1532.5,-380 1703.5,-380 1703.5,-416"/> +<text text-anchor="middle" x="1618" y="-404.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._is_key_val_property</text> +<text text-anchor="middle" x="1618" y="-396.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 22</text> +<text text-anchor="middle" x="1618" y="-388.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000038s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type->pymatlib.core.yaml_parser._is_key_val_property --> +<g id="edge19" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type->pymatlib.core.yaml_parser._is_key_val_property</title> +<path fill="none" stroke="#b1b2b2" d="M1503.26,-459.88C1524.9,-448.4 1553.58,-433.18 1576.86,-420.83"/> +<polygon fill="#b1b2b2" stroke="#b1b2b2" points="1578.62,-423.86 1585.82,-416.08 1575.34,-417.67 1578.62,-423.86"/> +<text text-anchor="middle" x="1552" y="-436.4" font-family="Verdana" font-size="7.00" fill="#000000">22</text> +</g> +<!-- pymatlib.core.yaml_parser._is_compute_property --> +<g id="node19" class="node"> +<title>pymatlib.core.yaml_parser._is_compute_property</title> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="1898.5,-416 1721.5,-416 1721.5,-380 1898.5,-380 1898.5,-416"/> +<text text-anchor="middle" x="1810" y="-404.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._is_compute_property</text> +<text text-anchor="middle" x="1810" y="-396.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 14</text> +<text text-anchor="middle" x="1810" y="-388.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000076s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type->pymatlib.core.yaml_parser._is_compute_property --> +<g id="edge20" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._determine_property_type->pymatlib.core.yaml_parser._is_compute_property</title> +<path fill="none" stroke="#b1b2b2" d="M1544.98,-459.98C1598.37,-447.69 1670.53,-431.09 1726.07,-418.31"/> +<polygon fill="#b1b2b2" stroke="#b1b2b2" points="1726.93,-421.71 1735.89,-416.05 1725.36,-414.88 1726.93,-421.71"/> +<text text-anchor="middle" x="1654" y="-436.4" font-family="Verdana" font-size="7.00" fill="#000000">14</text> +</g> +<!-- pymatlib.core.data_handler.read_data_from_file --> +<g id="node22" class="node"> +<title>pymatlib.core.data_handler.read_data_from_file</title> +<polygon fill="#e0e5e5" stroke="#e0e5e5" points="627.5,-496 454.5,-496 454.5,-460 627.5,-460 627.5,-496"/> +<text text-anchor="middle" x="541" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.data_handler.read_data_from_file</text> +<text text-anchor="middle" x="541" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 12</text> +<text text-anchor="middle" x="541" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 17.434196s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_file_property->pymatlib.core.data_handler.read_data_from_file --> +<g id="edge21" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_file_property->pymatlib.core.data_handler.read_data_from_file</title> +<path fill="none" stroke="#aeb2b2" d="M820.1,-539.98C763.76,-527.67 687.56,-511.02 629.02,-498.23"/> +<polygon fill="#aeb2b2" stroke="#aeb2b2" points="629.56,-494.77 619.05,-496.05 628.07,-501.61 629.56,-494.77"/> +<text text-anchor="middle" x="734" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">12</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data --> +<g id="node23" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data</title> +<polygon fill="#e1e5e5" stroke="#e1e5e5" points="898.5,-496 645.5,-496 645.5,-460 898.5,-460 898.5,-496"/> +<text text-anchor="middle" x="772" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data</text> +<text text-anchor="middle" x="772" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 20</text> +<text text-anchor="middle" x="772" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 11.953732s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_file_property->pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data --> +<g id="edge22" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_file_property->pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data</title> +<path fill="none" stroke="#afb2b2" d="M870.35,-539.88C852.13,-528.6 828.08,-513.72 808.33,-501.49"/> +<polygon fill="#afb2b2" stroke="#afb2b2" points="809.93,-498.37 799.59,-496.08 806.25,-504.32 809.93,-498.37"/> +<text text-anchor="middle" x="842" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">12</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_symbolic_temperature --> +<g id="node24" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_symbolic_temperature</title> +<polygon fill="#e2e5e5" stroke="#e2e5e5" points="295.5,-416 16.5,-416 16.5,-380 295.5,-380 295.5,-416"/> +<text text-anchor="middle" x="156" y="-404.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_symbolic_temperature</text> +<text text-anchor="middle" x="156" y="-396.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 10</text> +<text text-anchor="middle" x="156" y="-388.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 11.945053s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data->pymatlib.core.yaml_parser.MaterialConfigParser._process_symbolic_temperature --> +<g id="edge23" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data->pymatlib.core.yaml_parser.MaterialConfigParser._process_symbolic_temperature</title> +<path fill="none" stroke="#afb2b2" d="M645.48,-460.98C545.2,-448.28 405.02,-430.53 300.36,-417.28"/> +<polygon fill="#afb2b2" stroke="#afb2b2" points="300.71,-413.8 290.35,-416.01 299.83,-420.74 300.71,-413.8"/> +<text text-anchor="middle" x="486" y="-436.4" font-family="Verdana" font-size="7.00" fill="#000000">10</text> +</g> +<!-- pymatlib.core.yaml_parser._process_constant_temperature --> +<g id="node51" class="node"> +<title>pymatlib.core.yaml_parser._process_constant_temperature</title> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="522,-416 314,-416 314,-380 522,-380 522,-416"/> +<text text-anchor="middle" x="418" y="-404.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._process_constant_temperature</text> +<text text-anchor="middle" x="418" y="-396.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 10</text> +<text text-anchor="middle" x="418" y="-388.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.008039s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data->pymatlib.core.yaml_parser._process_constant_temperature --> +<g id="edge24" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data->pymatlib.core.yaml_parser._process_constant_temperature</title> +<path fill="none" stroke="#b1b2b2" d="M694.75,-459.98C638.88,-447.67 563.33,-431.02 505.28,-418.23"/> +<polygon fill="#b1b2b2" stroke="#b1b2b2" points="505.91,-414.79 495.39,-416.05 504.4,-421.62 505.91,-414.79"/> +<text text-anchor="middle" x="609" y="-436.4" font-family="Verdana" font-size="7.00" fill="#000000">10</text> +</g> +<!-- pymatlib.core.interpolators.interpolate_property --> +<g id="node25" class="node"> +<title>pymatlib.core.interpolators.interpolate_property</title> +<polygon fill="#e1e5e5" stroke="#e1e5e5" points="387,-336 211,-336 211,-300 387,-300 387,-336"/> +<text text-anchor="middle" x="299" y="-324.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.interpolate_property</text> +<text text-anchor="middle" x="299" y="-316.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 20</text> +<text text-anchor="middle" x="299" y="-308.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 11.952479s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_symbolic_temperature->pymatlib.core.interpolators.interpolate_property --> +<g id="edge25" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_symbolic_temperature->pymatlib.core.interpolators.interpolate_property</title> +<path fill="none" stroke="#afb2b2" d="M187.38,-379.88C208.34,-368.45 236.09,-353.31 258.68,-340.99"/> +<polygon fill="#afb2b2" stroke="#afb2b2" points="260.59,-343.94 267.69,-336.08 257.24,-337.79 260.59,-343.94"/> +<text text-anchor="middle" x="235" y="-356.4" font-family="Verdana" font-size="7.00" fill="#000000">10</text> +</g> +<!-- pymatlib.core.data_handler.check_equidistant --> +<g id="node26" class="node"> +<title>pymatlib.core.data_handler.check_equidistant</title> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="381.5,-256 216.5,-256 216.5,-220 381.5,-220 381.5,-256"/> +<text text-anchor="middle" x="299" y="-244.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.data_handler.check_equidistant</text> +<text text-anchor="middle" x="299" y="-236.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 20</text> +<text text-anchor="middle" x="299" y="-228.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.005570s</text> +</g> +<!-- pymatlib.core.interpolators.interpolate_property->pymatlib.core.data_handler.check_equidistant --> +<g id="edge26" class="edge"> +<title>pymatlib.core.interpolators.interpolate_property->pymatlib.core.data_handler.check_equidistant</title> +<path fill="none" stroke="#b1b2b2" d="M299,-299.69C299,-289.89 299,-277.42 299,-266.33"/> +<polygon fill="#b1b2b2" stroke="#b1b2b2" points="302.5,-266.26 299,-256.26 295.5,-266.26 302.5,-266.26"/> +<text text-anchor="middle" x="303" y="-276.4" font-family="Verdana" font-size="7.00" fill="#000000">20</text> +</g> +<!-- pymatlib.core.interpolators.interpolate_lookup --> +<g id="node27" class="node"> +<title>pymatlib.core.interpolators.interpolate_lookup</title> +<polygon fill="#e2e5e5" stroke="#e2e5e5" points="570,-256 400,-256 400,-220 570,-220 570,-256"/> +<text text-anchor="middle" x="485" y="-244.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.interpolate_lookup</text> +<text text-anchor="middle" x="485" y="-236.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 8</text> +<text text-anchor="middle" x="485" y="-228.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 10.887205s</text> +</g> +<!-- pymatlib.core.interpolators.interpolate_property->pymatlib.core.interpolators.interpolate_lookup --> +<g id="edge27" class="edge"> +<title>pymatlib.core.interpolators.interpolate_property->pymatlib.core.interpolators.interpolate_lookup</title> +<path fill="none" stroke="#b0b2b2" d="M339.82,-299.88C367.8,-288.15 405.1,-272.5 434.89,-260.01"/> +<polygon fill="#b0b2b2" stroke="#b0b2b2" points="436.41,-263.17 444.28,-256.08 433.7,-256.72 436.41,-263.17"/> +<text text-anchor="middle" x="399" y="-276.4" font-family="Verdana" font-size="7.00" fill="#000000">8</text> +</g> +<!-- pymatlib.core.interpolators.interpolate_equidistant --> +<g id="node29" class="node"> +<title>pymatlib.core.interpolators.interpolate_equidistant</title> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="198,-256 16,-256 16,-220 198,-220 198,-256"/> +<text text-anchor="middle" x="107" y="-244.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.interpolators.interpolate_equidistant</text> +<text text-anchor="middle" x="107" y="-236.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 12</text> +<text text-anchor="middle" x="107" y="-228.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 1.056039s</text> +</g> +<!-- pymatlib.core.interpolators.interpolate_property->pymatlib.core.interpolators.interpolate_equidistant --> +<g id="edge28" class="edge"> +<title>pymatlib.core.interpolators.interpolate_property->pymatlib.core.interpolators.interpolate_equidistant</title> +<path fill="none" stroke="#b1b2b2" d="M256.86,-299.88C227.85,-288.1 189.14,-272.37 158.33,-259.85"/> +<polygon fill="#b1b2b2" stroke="#b1b2b2" points="159.62,-256.6 149.04,-256.08 156.98,-263.08 159.62,-256.6"/> +<text text-anchor="middle" x="212" y="-276.4" font-family="Verdana" font-size="7.00" fill="#000000">12</text> +</g> +<!-- pymatlib.core.models.sympy_wrapper --> +<g id="node28" class="node"> +<title>pymatlib.core.models.sympy_wrapper</title> +<polygon fill="#e1e5e5" stroke="#e1e5e5" points="571.5,-68 428.5,-68 428.5,-32 571.5,-32 571.5,-68"/> +<text text-anchor="middle" x="500" y="-56.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models.sympy_wrapper</text> +<text text-anchor="middle" x="500" y="-48.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 56</text> +<text text-anchor="middle" x="500" y="-40.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.548751s</text> +</g> +<!-- pymatlib.core.interpolators.interpolate_lookup->pymatlib.core.models.sympy_wrapper --> +<g id="edge29" class="edge"> +<title>pymatlib.core.interpolators.interpolate_lookup->pymatlib.core.models.sympy_wrapper</title> +<path fill="none" stroke="#b1b2b2" d="M486.38,-219.83C489,-187.45 494.67,-117.09 497.81,-78.2"/> +<polygon fill="#b1b2b2" stroke="#b1b2b2" points="501.3,-78.37 498.62,-68.12 494.33,-77.81 501.3,-78.37"/> +<text text-anchor="middle" x="496" y="-128.4" font-family="Verdana" font-size="7.00" fill="#000000">8</text> +</g> +<!-- pymatlib.core.models.material_property_wrapper --> +<g id="node52" class="node"> +<title>pymatlib.core.models.material_property_wrapper</title> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="463.5,-148 284.5,-148 284.5,-112 463.5,-112 463.5,-148"/> +<text text-anchor="middle" x="374" y="-136.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models.material_property_wrapper</text> +<text text-anchor="middle" x="374" y="-128.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 10</text> +<text text-anchor="middle" x="374" y="-120.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.002925s</text> +</g> +<!-- pymatlib.core.interpolators.interpolate_lookup->pymatlib.core.models.material_property_wrapper --> +<g id="edge30" class="edge"> +<title>pymatlib.core.interpolators.interpolate_lookup->pymatlib.core.models.material_property_wrapper</title> +<path fill="none" stroke="#b2b2b2" d="M467.17,-219.97C448.83,-202.46 420.1,-175.02 399.39,-155.25"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="401.81,-152.72 392.16,-148.34 396.97,-157.78 401.81,-152.72"/> +<text text-anchor="middle" x="447" y="-182.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.interpolators.interpolate_equidistant->pymatlib.core.models.sympy_wrapper --> +<g id="edge31" class="edge"> +<title>pymatlib.core.interpolators.interpolate_equidistant->pymatlib.core.models.sympy_wrapper</title> +<path fill="none" stroke="#b0b2b2" d="M128.08,-219.89C146.02,-205.4 172.55,-184.14 196,-166 227.64,-141.52 231.99,-129.41 268,-112 315.51,-89.03 372.82,-73.86 418.59,-64.39"/> +<polygon fill="#b0b2b2" stroke="#b0b2b2" points="419.36,-67.8 428.47,-62.39 417.98,-60.94 419.36,-67.8"/> +<text text-anchor="middle" x="272" y="-128.4" font-family="Verdana" font-size="7.00" fill="#000000">30</text> +</g> +<!-- pymatlib.core.interpolators.interpolate_equidistant->pymatlib.core.models.material_property_wrapper --> +<g id="edge32" class="edge"> +<title>pymatlib.core.interpolators.interpolate_equidistant->pymatlib.core.models.material_property_wrapper</title> +<path fill="none" stroke="#b2b2b2" d="M149.9,-219.97C196.57,-201.44 271.21,-171.81 321.38,-151.89"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="322.76,-155.11 330.77,-148.16 320.18,-148.6 322.76,-155.11"/> +<text text-anchor="middle" x="282" y="-182.4" font-family="Verdana" font-size="7.00" fill="#000000">6</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_key_val_property->pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data --> +<g id="edge34" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_key_val_property->pymatlib.core.yaml_parser.MaterialConfigParser._process_property_data</title> +<path fill="none" stroke="#b0b2b2" d="M1083.93,-539.98C1020.57,-527.59 934.75,-510.82 869.16,-497.99"/> +<polygon fill="#b0b2b2" stroke="#b0b2b2" points="869.71,-494.54 859.23,-496.05 868.37,-501.41 869.71,-494.54"/> +<text text-anchor="middle" x="985" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">8</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_key_definition --> +<g id="node31" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_key_definition</title> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="1169,-496 917,-496 917,-460 1169,-460 1169,-496"/> +<text text-anchor="middle" x="1043" y="-484.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_key_definition</text> +<text text-anchor="middle" x="1043" y="-476.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 8</text> +<text text-anchor="middle" x="1043" y="-468.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000575s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_key_val_property->pymatlib.core.yaml_parser.MaterialConfigParser._process_key_definition --> +<g id="edge33" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_key_val_property->pymatlib.core.yaml_parser.MaterialConfigParser._process_key_definition</title> +<path fill="none" stroke="#b2b2b2" d="M1142.91,-539.88C1124.32,-528.55 1099.75,-513.58 1079.63,-501.32"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1081.39,-498.29 1071.02,-496.08 1077.74,-504.27 1081.39,-498.29"/> +<text text-anchor="middle" x="1112" y="-516.4" font-family="Verdana" font-size="7.00" fill="#000000">8</text> +</g> +<!-- pymatlib.core.yaml_parser._process_list_key --> +<g id="node32" class="node"> +<title>pymatlib.core.yaml_parser._process_list_key</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="902,-416 744,-416 744,-380 902,-380 902,-416"/> +<text text-anchor="middle" x="823" y="-404.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._process_list_key</text> +<text text-anchor="middle" x="823" y="-396.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="823" y="-388.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000164s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_key_definition->pymatlib.core.yaml_parser._process_list_key --> +<g id="edge35" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_key_definition->pymatlib.core.yaml_parser._process_list_key</title> +<path fill="none" stroke="#b2b2b2" d="M994.99,-459.98C961.48,-448.1 916.56,-432.17 881.04,-419.58"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="881.88,-416.16 871.29,-416.12 879.54,-422.76 881.88,-416.16"/> +<text text-anchor="middle" x="941" y="-436.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.yaml_parser._process_equidistant_key --> +<g id="node33" class="node"> +<title>pymatlib.core.yaml_parser._process_equidistant_key</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="726,-416 540,-416 540,-380 726,-380 726,-416"/> +<text text-anchor="middle" x="633" y="-404.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._process_equidistant_key</text> +<text text-anchor="middle" x="633" y="-396.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="633" y="-388.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000141s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_key_definition->pymatlib.core.yaml_parser._process_equidistant_key --> +<g id="edge36" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_key_definition->pymatlib.core.yaml_parser._process_equidistant_key</title> +<path fill="none" stroke="#b2b2b2" d="M953.53,-459.98C888.42,-447.59 800.24,-430.82 732.84,-417.99"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="733.11,-414.48 722.63,-416.05 731.8,-421.36 733.11,-414.48"/> +<text text-anchor="middle" x="852" y="-436.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.yaml_parser._get_computation_methods --> +<g id="node35" class="node"> +<title>pymatlib.core.yaml_parser._get_computation_methods</title> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="940,-336 744,-336 744,-300 940,-300 940,-336"/> +<text text-anchor="middle" x="842" y="-324.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._get_computation_methods</text> +<text text-anchor="middle" x="842" y="-316.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 12</text> +<text text-anchor="middle" x="842" y="-308.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000107s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser._get_computation_methods --> +<g id="edge37" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser._get_computation_methods</title> +<path fill="none" stroke="#b1b2b2" d="M1009.3,-379.98C976.7,-368.1 933.01,-352.17 898.46,-339.58"/> +<polygon fill="#b1b2b2" stroke="#b1b2b2" points="899.56,-336.26 888.97,-336.12 897.17,-342.83 899.56,-336.26"/> +<text text-anchor="middle" x="959" y="-356.4" font-family="Verdana" font-size="7.00" fill="#000000">12</text> +</g> +<!-- pymatlib.core.yaml_parser._get_dependencies --> +<g id="node36" class="node"> +<title>pymatlib.core.yaml_parser._get_dependencies</title> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="1393.5,-336 1226.5,-336 1226.5,-300 1393.5,-300 1393.5,-336"/> +<text text-anchor="middle" x="1310" y="-324.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._get_dependencies</text> +<text text-anchor="middle" x="1310" y="-316.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 12</text> +<text text-anchor="middle" x="1310" y="-308.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000124s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser._get_dependencies --> +<g id="edge38" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser._get_dependencies</title> +<path fill="none" stroke="#b1b2b2" d="M1111.43,-379.98C1150.62,-367.94 1203.31,-351.76 1244.56,-339.09"/> +<polygon fill="#b1b2b2" stroke="#b1b2b2" points="1245.72,-342.4 1254.25,-336.12 1243.67,-335.71 1245.72,-342.4"/> +<text text-anchor="middle" x="1194" y="-356.4" font-family="Verdana" font-size="7.00" fill="#000000">12</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_dependencies --> +<g id="node37" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_dependencies</title> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="1208.5,-336 957.5,-336 957.5,-300 1208.5,-300 1208.5,-336"/> +<text text-anchor="middle" x="1083" y="-324.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_dependencies</text> +<text text-anchor="middle" x="1083" y="-316.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 12</text> +<text text-anchor="middle" x="1083" y="-308.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.052754s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser.MaterialConfigParser._process_dependencies --> +<g id="edge39" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser.MaterialConfigParser._process_dependencies</title> +<path fill="none" stroke="#b1b2b2" d="M1061.99,-379.69C1065.42,-369.79 1069.79,-357.16 1073.66,-345.99"/> +<polygon fill="#b1b2b2" stroke="#b1b2b2" points="1077.06,-346.86 1077.02,-336.26 1070.45,-344.57 1077.06,-346.86"/> +<text text-anchor="middle" x="1074" y="-356.4" font-family="Verdana" font-size="7.00" fill="#000000">12</text> +</g> +<!-- pymatlib.core.yaml_parser.<lambda> --> +<g id="node38" class="node"> +<title>pymatlib.core.yaml_parser.<lambda></title> +<polygon fill="#e5061a" stroke="#e5061a" points="1548.5,-336 1411.5,-336 1411.5,-300 1548.5,-300 1548.5,-336"/> +<text text-anchor="middle" x="1480" y="-324.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.<lambda></text> +<text text-anchor="middle" x="1480" y="-316.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1,096</text> +<text text-anchor="middle" x="1480" y="-308.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 692.666056s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser.<lambda> --> +<g id="edge40" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser.<lambda></title> +<path fill="none" stroke="#a940b2" d="M1159.85,-379.95C1226.35,-368.75 1314.71,-353.34 1401.19,-336.32"/> +<polygon fill="#a940b2" stroke="#a940b2" points="1402.05,-339.72 1411.18,-334.35 1400.7,-332.85 1402.05,-339.72"/> +<text text-anchor="middle" x="1311" y="-356.4" font-family="Verdana" font-size="7.00" fill="#000000">12</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density --> +<g id="node43" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density</title> +<polygon fill="#d952e5" stroke="#d952e5" points="726,-336 472,-336 472,-300 726,-300 726,-336"/> +<text text-anchor="middle" x="599" y="-324.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density</text> +<text text-anchor="middle" x="599" y="-316.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> +<text text-anchor="middle" x="599" y="-308.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 694.500214s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density --> +<g id="edge41" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property->pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density</title> +<path fill="none" stroke="#a940b2" d="M956.27,-379.98C883.26,-367.52 784.19,-350.61 708.9,-337.76"/> +<polygon fill="#a940b2" stroke="#a940b2" points="709.35,-334.28 698.91,-336.05 708.18,-341.18 709.35,-334.28"/> +<text text-anchor="middle" x="843" y="-356.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_dependencies->pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property --> +<g id="edge56" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_dependencies->pymatlib.core.yaml_parser.MaterialConfigParser._process_computed_property</title> +<path fill="none" stroke="#a940b2" d="M1070.86,-336.12C1067.49,-341.6 1064.17,-347.85 1062,-354 1060.23,-359.02 1058.97,-364.55 1058.09,-369.92"/> +<polygon fill="#a940b2" stroke="#a940b2" points="1054.61,-369.52 1056.81,-379.88 1061.56,-370.41 1054.61,-369.52"/> +<text text-anchor="middle" x="1064" y="-356.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +</g> +<!-- pymatlib.core.models.thermal_diffusivity_by_heat_conductivity --> +<g id="node39" class="node"> +<title>pymatlib.core.models.thermal_diffusivity_by_heat_conductivity</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1231,-256 1011,-256 1011,-220 1231,-220 1231,-256"/> +<text text-anchor="middle" x="1121" y="-244.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models.thermal_diffusivity_by_heat_conductivity</text> +<text text-anchor="middle" x="1121" y="-236.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="1121" y="-228.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.472335s</text> +</g> +<!-- pymatlib.core.yaml_parser.<lambda>->pymatlib.core.models.thermal_diffusivity_by_heat_conductivity --> +<g id="edge42" class="edge"> +<title>pymatlib.core.yaml_parser.<lambda>->pymatlib.core.models.thermal_diffusivity_by_heat_conductivity</title> +<path fill="none" stroke="#b2b2b2" d="M1411.16,-301.79C1408.4,-301.18 1405.67,-300.58 1403,-300 1338.37,-285.88 1265.37,-270.09 1209.84,-258.12"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1210.54,-254.69 1200.03,-256 1209.07,-261.53 1210.54,-254.69"/> +<text text-anchor="middle" x="1319" y="-276.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.models.energy_density_total_enthalpy --> +<g id="node42" class="node"> +<title>pymatlib.core.models.energy_density_total_enthalpy</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1437,-256 1249,-256 1249,-220 1437,-220 1437,-256"/> +<text text-anchor="middle" x="1343" y="-244.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models.energy_density_total_enthalpy</text> +<text text-anchor="middle" x="1343" y="-236.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> +<text text-anchor="middle" x="1343" y="-228.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.005481s</text> +</g> +<!-- pymatlib.core.yaml_parser.<lambda>->pymatlib.core.models.energy_density_total_enthalpy --> +<g id="edge43" class="edge"> +<title>pymatlib.core.yaml_parser.<lambda>->pymatlib.core.models.energy_density_total_enthalpy</title> +<path fill="none" stroke="#b2b2b2" d="M1449.93,-299.88C1429.95,-288.5 1403.51,-273.45 1381.92,-261.16"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1383.42,-257.98 1373,-256.08 1379.95,-264.07 1383.42,-257.98"/> +<text text-anchor="middle" x="1417" y="-276.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +</g> +<!-- pymatlib.core.typedefs.MaterialProperty.evalf --> +<g id="node46" class="node"> +<title>pymatlib.core.typedefs.MaterialProperty.evalf</title> +<polygon fill="#e5061b" stroke="#e5061b" points="992.5,-256 827.5,-256 827.5,-220 992.5,-220 992.5,-256"/> +<text text-anchor="middle" x="910" y="-244.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.typedefs.MaterialProperty.evalf</text> +<text text-anchor="middle" x="910" y="-236.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1,088</text> +<text text-anchor="middle" x="910" y="-228.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 694.437877s</text> +</g> +<!-- pymatlib.core.yaml_parser.<lambda>->pymatlib.core.typedefs.MaterialProperty.evalf --> +<g id="edge44" class="edge"> +<title>pymatlib.core.yaml_parser.<lambda>->pymatlib.core.typedefs.MaterialProperty.evalf</title> +<path fill="none" stroke="#b20515" d="M1411.22,-301.43C1408.45,-300.92 1405.7,-300.45 1403,-300 1229.29,-271.38 1181.11,-281.69 1002.69,-256.03"/> +<polygon fill="#b20515" stroke="#b20515" points="1003.1,-252.56 992.7,-254.58 1002.1,-259.48 1003.1,-252.56"/> +<text text-anchor="middle" x="1272" y="-276.4" font-family="Verdana" font-size="7.00" fill="#000000">1084</text> +</g> +<!-- pymatlib.core.models.density_by_thermal_expansion --> +<g id="node47" class="node"> +<title>pymatlib.core.models.density_by_thermal_expansion</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1744,-202 1554,-202 1554,-166 1744,-166 1744,-202"/> +<text text-anchor="middle" x="1649" y="-190.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models.density_by_thermal_expansion</text> +<text text-anchor="middle" x="1649" y="-182.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 4</text> +<text text-anchor="middle" x="1649" y="-174.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.066921s</text> +</g> +<!-- pymatlib.core.yaml_parser.<lambda>->pymatlib.core.models.density_by_thermal_expansion --> +<g id="edge45" class="edge"> +<title>pymatlib.core.yaml_parser.<lambda>->pymatlib.core.models.density_by_thermal_expansion</title> +<path fill="none" stroke="#b2b2b2" d="M1548.89,-305.79C1579.91,-297.25 1614.35,-282.25 1636,-256 1645.91,-243.98 1649.26,-226.89 1650.09,-212.49"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1653.59,-212.2 1650.29,-202.13 1646.59,-212.06 1653.59,-212.2"/> +<text text-anchor="middle" x="1617" y="-276.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.models.energy_density_standard --> +<g id="node48" class="node"> +<title>pymatlib.core.models.energy_density_standard</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1627,-256 1455,-256 1455,-220 1627,-220 1627,-256"/> +<text text-anchor="middle" x="1541" y="-244.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models.energy_density_standard</text> +<text text-anchor="middle" x="1541" y="-236.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> +<text text-anchor="middle" x="1541" y="-228.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.075535s</text> +</g> +<!-- pymatlib.core.yaml_parser.<lambda>->pymatlib.core.models.energy_density_standard --> +<g id="edge46" class="edge"> +<title>pymatlib.core.yaml_parser.<lambda>->pymatlib.core.models.energy_density_standard</title> +<path fill="none" stroke="#b2b2b2" d="M1493.54,-299.69C1501.67,-289.29 1512.17,-275.87 1521.22,-264.29"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1524.1,-266.3 1527.5,-256.26 1518.58,-261.98 1524.1,-266.3"/> +<text text-anchor="middle" x="1514" y="-276.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +</g> +<!-- pymatlib.core.models._validate_positive --> +<g id="node40" class="node"> +<title>pymatlib.core.models._validate_positive</title> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="1224,-148 1078,-148 1078,-112 1224,-112 1224,-148"/> +<text text-anchor="middle" x="1151" y="-136.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models._validate_positive</text> +<text text-anchor="middle" x="1151" y="-128.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 8</text> +<text text-anchor="middle" x="1151" y="-120.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000072s</text> +</g> +<!-- pymatlib.core.models.thermal_diffusivity_by_heat_conductivity->pymatlib.core.models._validate_positive --> +<g id="edge47" class="edge"> +<title>pymatlib.core.models.thermal_diffusivity_by_heat_conductivity->pymatlib.core.models._validate_positive</title> +<path fill="none" stroke="#b2b2b2" d="M1125.82,-219.97C1130.54,-203.3 1137.8,-177.65 1143.31,-158.16"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1146.74,-158.92 1146.09,-148.34 1140,-157.01 1146.74,-158.92"/> +<text text-anchor="middle" x="1142" y="-182.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.models._prepare_material_expressions --> +<g id="node41" class="node"> +<title>pymatlib.core.models._prepare_material_expressions</title> +<polygon fill="#e4e5e5" stroke="#e4e5e5" points="1432,-148 1242,-148 1242,-112 1432,-112 1432,-148"/> +<text text-anchor="middle" x="1337" y="-136.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models._prepare_material_expressions</text> +<text text-anchor="middle" x="1337" y="-128.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 8</text> +<text text-anchor="middle" x="1337" y="-120.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000838s</text> +</g> +<!-- pymatlib.core.models.thermal_diffusivity_by_heat_conductivity->pymatlib.core.models._prepare_material_expressions --> +<g id="edge48" class="edge"> +<title>pymatlib.core.models.thermal_diffusivity_by_heat_conductivity->pymatlib.core.models._prepare_material_expressions</title> +<path fill="none" stroke="#b2b2b2" d="M1231.23,-220.12C1245.83,-215.47 1260.16,-209.55 1273,-202 1292.19,-190.71 1308.84,-171.76 1320.35,-156.27"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1323.22,-158.26 1326.19,-148.09 1317.53,-154.19 1323.22,-158.26"/> +<text text-anchor="middle" x="1313" y="-182.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.models._prepare_material_expressions->pymatlib.core.models.sympy_wrapper --> +<g id="edge49" class="edge"> +<title>pymatlib.core.models._prepare_material_expressions->pymatlib.core.models.sympy_wrapper</title> +<path fill="none" stroke="#b2b2b2" d="M1241.83,-113.13C1238.85,-112.74 1235.91,-112.36 1233,-112 997.54,-83 717.78,-63.97 582.04,-55.71"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="581.92,-52.19 571.73,-55.08 581.5,-59.18 581.92,-52.19"/> +<text text-anchor="middle" x="1054" y="-88.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.models.energy_density_total_enthalpy->pymatlib.core.models._validate_positive --> +<g id="edge50" class="edge"> +<title>pymatlib.core.models.energy_density_total_enthalpy->pymatlib.core.models._validate_positive</title> +<path fill="none" stroke="#b2b2b2" d="M1304.99,-219.91C1293.32,-214.43 1280.53,-208.17 1269,-202 1240.72,-186.85 1209.66,-168.08 1186.52,-153.64"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1188.07,-150.48 1177.74,-148.14 1184.35,-156.41 1188.07,-150.48"/> +<text text-anchor="middle" x="1271" y="-182.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +</g> +<!-- pymatlib.core.models.energy_density_total_enthalpy->pymatlib.core.models._prepare_material_expressions --> +<g id="edge51" class="edge"> +<title>pymatlib.core.models.energy_density_total_enthalpy->pymatlib.core.models._prepare_material_expressions</title> +<path fill="none" stroke="#b2b2b2" d="M1342.04,-219.97C1341.1,-203.38 1339.65,-177.88 1338.55,-158.43"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1342.04,-158.13 1337.98,-148.34 1335.05,-158.52 1342.04,-158.13"/> +<text text-anchor="middle" x="1342" y="-182.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_edta --> +<g id="node44" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_edta</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="809.5,-256 588.5,-256 588.5,-220 809.5,-220 809.5,-256"/> +<text text-anchor="middle" x="699" y="-244.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_edta</text> +<text text-anchor="middle" x="699" y="-236.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> +<text text-anchor="middle" x="699" y="-228.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000472s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density->pymatlib.core.yaml_parser.MaterialConfigParser._process_edta --> +<g id="edge52" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density->pymatlib.core.yaml_parser.MaterialConfigParser._process_edta</title> +<path fill="none" stroke="#b2b2b2" d="M621.19,-299.69C635.18,-288.78 653.41,-274.56 668.71,-262.62"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="671.14,-265.17 676.87,-256.26 666.83,-259.65 671.14,-265.17"/> +<text text-anchor="middle" x="653" y="-276.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density->pymatlib.core.typedefs.MaterialProperty.evalf --> +<g id="edge53" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._handle_energy_density->pymatlib.core.typedefs.MaterialProperty.evalf</title> +<path fill="none" stroke="#a940b2" d="M666.87,-299.98C715.54,-287.77 781.23,-271.3 832.05,-258.55"/> +<polygon fill="#a940b2" stroke="#a940b2" points="833.16,-261.88 842.01,-256.05 831.46,-255.09 833.16,-261.88"/> +<text text-anchor="middle" x="765" y="-276.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.yaml_parser._process_float_step --> +<g id="node45" class="node"> +<title>pymatlib.core.yaml_parser._process_float_step</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="742.5,-148 575.5,-148 575.5,-112 742.5,-112 742.5,-148"/> +<text text-anchor="middle" x="659" y="-136.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser._process_float_step</text> +<text text-anchor="middle" x="659" y="-128.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="659" y="-120.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000069s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_edta->pymatlib.core.yaml_parser._process_float_step --> +<g id="edge54" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_edta->pymatlib.core.yaml_parser._process_float_step</title> +<path fill="none" stroke="#b2b2b2" d="M692.57,-219.97C686.25,-203.22 676.51,-177.41 669.15,-157.89"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="672.35,-156.46 665.54,-148.34 665.8,-158.93 672.35,-156.46"/> +<text text-anchor="middle" x="686" y="-182.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_int_step --> +<g id="node50" class="node"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_int_step</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="991.5,-148 760.5,-148 760.5,-112 991.5,-112 991.5,-148"/> +<text text-anchor="middle" x="876" y="-136.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.yaml_parser.MaterialConfigParser._process_int_step</text> +<text text-anchor="middle" x="876" y="-128.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 1</text> +<text text-anchor="middle" x="876" y="-120.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000191s</text> +</g> +<!-- pymatlib.core.yaml_parser.MaterialConfigParser._process_edta->pymatlib.core.yaml_parser.MaterialConfigParser._process_int_step --> +<g id="edge55" class="edge"> +<title>pymatlib.core.yaml_parser.MaterialConfigParser._process_edta->pymatlib.core.yaml_parser.MaterialConfigParser._process_int_step</title> +<path fill="none" stroke="#b2b2b2" d="M727.44,-219.97C757.54,-201.94 805.2,-173.4 838.39,-153.53"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="840.56,-156.3 847.34,-148.16 836.96,-150.3 840.56,-156.3"/> +<text text-anchor="middle" x="815" y="-182.4" font-family="Verdana" font-size="7.00" fill="#000000">1</text> +</g> +<!-- pymatlib.core.models.density_by_thermal_expansion->pymatlib.core.models.sympy_wrapper --> +<g id="edge57" class="edge"> +<title>pymatlib.core.models.density_by_thermal_expansion->pymatlib.core.models.sympy_wrapper</title> +<path fill="none" stroke="#b2b2b2" d="M1648.4,-165.85C1646.81,-149.18 1641.58,-124.59 1625,-112 1583.56,-80.53 833.66,-59.23 581.76,-52.94"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="581.65,-49.43 571.57,-52.68 581.48,-56.43 581.65,-49.43"/> +<text text-anchor="middle" x="1647" y="-128.4" font-family="Verdana" font-size="7.00" fill="#000000">4</text> +</g> +<!-- pymatlib.core.models.energy_density_standard->pymatlib.core.models._validate_positive --> +<g id="edge58" class="edge"> +<title>pymatlib.core.models.energy_density_standard->pymatlib.core.models._validate_positive</title> +<path fill="none" stroke="#b2b2b2" d="M1454.7,-220.84C1436.22,-215.94 1417.12,-209.74 1400,-202 1374.38,-190.42 1374.1,-176.44 1348,-166 1302.78,-147.92 1285.89,-156.13 1234.33,-148.08"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1234.73,-144.6 1224.28,-146.38 1233.56,-151.5 1234.73,-144.6"/> +<text text-anchor="middle" x="1402" y="-182.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +</g> +<!-- pymatlib.core.models.energy_density_standard->pymatlib.core.models._prepare_material_expressions --> +<g id="edge60" class="edge"> +<title>pymatlib.core.models.energy_density_standard->pymatlib.core.models._prepare_material_expressions</title> +<path fill="none" stroke="#b2b2b2" d="M1508.22,-219.97C1473.23,-201.79 1417.66,-172.91 1379.37,-153.02"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1380.52,-149.67 1370.03,-148.16 1377.29,-155.88 1380.52,-149.67"/> +<text text-anchor="middle" x="1471" y="-182.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +</g> +<!-- pymatlib.core.models._validate_non_negative --> +<g id="node49" class="node"> +<title>pymatlib.core.models._validate_non_negative</title> +<polygon fill="#e5e5e5" stroke="#e5e5e5" points="1615.5,-148 1450.5,-148 1450.5,-112 1615.5,-112 1615.5,-148"/> +<text text-anchor="middle" x="1533" y="-136.4" font-family="Verdana" font-size="7.00" fill="#000000">pymatlib.core.models._validate_non_negative</text> +<text text-anchor="middle" x="1533" y="-128.4" font-family="Verdana" font-size="7.00" fill="#000000">calls: 2</text> +<text text-anchor="middle" x="1533" y="-120.4" font-family="Verdana" font-size="7.00" fill="#000000">time: 0.000017s</text> +</g> +<!-- pymatlib.core.models.energy_density_standard->pymatlib.core.models._validate_non_negative --> +<g id="edge59" class="edge"> +<title>pymatlib.core.models.energy_density_standard->pymatlib.core.models._validate_non_negative</title> +<path fill="none" stroke="#b2b2b2" d="M1539.71,-219.97C1538.46,-203.38 1536.54,-177.88 1535.07,-158.43"/> +<polygon fill="#b2b2b2" stroke="#b2b2b2" points="1538.55,-158.05 1534.31,-148.34 1531.57,-158.58 1538.55,-158.05"/> +<text text-anchor="middle" x="1540" y="-182.4" font-family="Verdana" font-size="7.00" fill="#000000">2</text> +</g> +<!-- pymatlib.core.yaml_parser._process_constant_temperature->pymatlib.core.interpolators.interpolate_property --> +<g id="edge61" class="edge"> +<title>pymatlib.core.yaml_parser._process_constant_temperature->pymatlib.core.interpolators.interpolate_property</title> +<path fill="none" stroke="#afb2b2" d="M391.88,-379.88C374.76,-368.66 352.17,-353.85 333.56,-341.65"/> +<polygon fill="#afb2b2" stroke="#afb2b2" points="335.34,-338.63 325.05,-336.08 331.5,-344.49 335.34,-338.63"/> +<text text-anchor="middle" x="366" y="-356.4" font-family="Verdana" font-size="7.00" fill="#000000">10</text> +</g> +<!-- pymatlib.core.models.material_property_wrapper->pymatlib.core.models.sympy_wrapper --> +<g id="edge62" class="edge"> +<title>pymatlib.core.models.material_property_wrapper->pymatlib.core.models.sympy_wrapper</title> +<path fill="none" stroke="#b1b2b2" d="M401.65,-111.88C419.87,-100.6 443.92,-85.72 463.67,-73.49"/> +<polygon fill="#b1b2b2" stroke="#b1b2b2" points="465.75,-76.32 472.41,-68.08 462.07,-70.37 465.75,-76.32"/> +<text text-anchor="middle" x="444" y="-88.4" font-family="Verdana" font-size="7.00" fill="#000000">10</text> +</g> +</g> +</svg> diff --git a/apps/visualize_all_functions.py b/apps/visualize_all_functions.py index 0b3510bd76284ba1c60fc776a092f1496a1c41a4..58ea91fc966afa7adb574f41b100756ae6af8b12 100644 --- a/apps/visualize_all_functions.py +++ b/apps/visualize_all_functions.py @@ -12,8 +12,8 @@ import pystencils as ps from importlib.resources import files from pystencilssfg import SourceFileGenerator from pymatlib.core.yaml_parser import create_alloy_from_yaml -from pymatlib.core.interpolators import InterpolationArrayContainer from pymatlib.core.assignment_converter import assignment_converter +from pymatlib.core.codegen.interpolation_array_container import InterpolationArrayContainer # Define the path to the folder inside the apps directory apps_directory = '/local/ca00xebo/repos/pymatlib/apps' diff --git a/apps/yaml_parser_callgraph.py b/apps/yaml_parser_callgraph.py index 8d3107c6b364b06f7c214ba602f1e47591b698a2..e84e27fa132b7bd818bc40f9a80b01b2ee6438f8 100644 --- a/apps/yaml_parser_callgraph.py +++ b/apps/yaml_parser_callgraph.py @@ -15,10 +15,10 @@ if not os.path.exists(image_folder): config = Config() config.trace_filter = GlobbingFilter( include=[ - 'pymatlib.core.alloy.*', - 'pymatlib.core.elements.*', + # 'pymatlib.core.alloy.*', + # 'pymatlib.core.elements.*', 'pymatlib.core.yaml_parser.*', - 'pymatlib.core.assignment_converter.*', + # 'pymatlib.core.assignment_converter.*', 'pymatlib.core.interpolators.*', 'pymatlib.core.interpolators.interpolate_property.*', 'pymatlib.core.typedefs.*', @@ -29,9 +29,9 @@ config.trace_filter = GlobbingFilter( 'create_alloy_from_yaml', 'assignment_converter', 'interpolate_property', - 'Assignment', + # 'Assignment', 'ArrayTypes', - 'PropertyTypes', + # 'PropertyTypes', 'MaterialProperty', 'density_by_thermal_expansion', 'thermal_diffusivity_by_heat_conductivity', @@ -39,24 +39,35 @@ config.trace_filter = GlobbingFilter( 'energy_density_enthalpy_based', 'energy_density_total_enthalpy', 'read_data_from_file', - 'wrapper', + # 'wrapper', 'check_equidistant', 'check_strictly_increasing', 'ChemicalElement', - 'interpolate_atomic_mass', - 'interpolate_atomic_number', - 'interpolate_temperature_boil', + # 'interpolate_atomic_mass', + # 'interpolate_atomic_number', + # 'interpolate_temperature_boil', 'evalf', + 'pymatlib.core.yaml_parser.<lambda>', # Specifically include yaml_parser lambda + '*.<lambda>', ], exclude=[ 'pycallgraph2.*', '*.append', # Exclude common methods '*.join', + '*.<module>', + '*.<listcomp>', # Exclude list comprehensions + '*.<genexpr>', # Exclude generator expressions + '*.<dictcomp>', # Exclude dictionary comprehensions + # '*.<*>', # Exclude all comprehensions + 'pymatlib.core.alloy.<lambda>', + 'pymatlib.core.typedefs.Assignment', + 'pymatlib.core.typedefs.MaterialProperty', + 'pymatlib.core.typedefs.MaterialProperty.__post_init__', ] ) # Configure the output with the full path -output_file = os.path.join(image_folder, 'yaml_parser_callgraph.svg') +output_file = os.path.join(image_folder, 'yaml_parser_callgraph_reduced.svg') # Configure the output graphviz = GraphvizOutput( @@ -65,7 +76,8 @@ graphviz = GraphvizOutput( font_size=7, group_stdlib=True, output_type='svg', - dpi=1200 + dpi=1200, + include_timing=False, ) # Run the specific part of your code with call graph tracking @@ -76,13 +88,19 @@ with PyCallGraph(config=config, output=graphviz): from importlib.resources import files # from pystencilssfg import SourceFileGenerator # from pymatlib.core.assignment_converter import assignment_converter - # from pymatlib.core.interpolators import InterpolationArrayContainer + # from pymatlib.core.codegen.interpolation_array_container import InterpolationArrayContainer from pymatlib.core.yaml_parser import create_alloy_from_yaml u = ps.fields("u: float64[2D]", layout='fzyx') yaml_path = files('pymatlib.data.alloys.SS304L').joinpath('SS304L_comprehensive.yaml') mat = create_alloy_from_yaml(yaml_path, u.center()) + yaml_path1 = files('pymatlib.data.alloys.SS304L').joinpath('SS304L.yaml') + mat1 = create_alloy_from_yaml(yaml_path1, u.center()) + + mat2 = create_alloy_from_yaml(yaml_path, 1600.) + + mat3 = create_alloy_from_yaml(yaml_path1, 1600.) '''with SourceFileGenerator() as sfg: yaml_path = files('pymatlib.data.alloys.SS304L').joinpath('SS304L.yaml') diff --git a/src/pymatlib/core/codegen/interpolation_array_container.py b/src/pymatlib/core/codegen/interpolation_array_container.py new file mode 100644 index 0000000000000000000000000000000000000000..190529475831008721ba56ea2a7534da62e56eec --- /dev/null +++ b/src/pymatlib/core/codegen/interpolation_array_container.py @@ -0,0 +1,182 @@ +import numpy as np +from pystencils.types import PsCustomType +from pystencilssfg import SfgComposer +from pystencilssfg.composer.custom import CustomGenerator +from pymatlib.core.interpolators import prepare_interpolation_arrays + + +class InterpolationArrayContainer(CustomGenerator): + """Container for energy-temperature interpolation arrays and methods. + + This class stores temperature and energy density arrays and generates C++ code + for efficient bilateral conversion between these properties. It supports both + binary search interpolation (O(log n)) and double lookup interpolation (O(1)) + with automatic method selection based on data characteristics. + + Attributes: + name (str): Name for the generated C++ class. + T_array (np.ndarray): Array of temperature values (must be monotonically increasing). + E_array (np.ndarray): Array of energy density values corresponding to T_array. + method (str): Interpolation method selected ("binary_search" or "double_lookup"). + T_bs (np.ndarray): Temperature array prepared for binary search. + E_bs (np.ndarray): Energy array prepared for binary search. + has_double_lookup (bool): Whether double lookup interpolation is available. + + If has_double_lookup is True, the following attributes are also available: + T_eq (np.ndarray): Equidistant temperature array for double lookup. + E_neq (np.ndarray): Non-equidistant energy array for double lookup. + E_eq (np.ndarray): Equidistant energy array for double lookup. + inv_delta_E_eq (float): Inverse of the energy step size for double lookup. + idx_map (np.ndarray): Index mapping array for double lookup. + + Examples: + >>> import numpy as np + >>> from pystencilssfg import SfgComposer + >>> from pymatlib.core.codegen.interpolation_array_container import InterpolationArrayContainer + >>> + >>> # Create temperature and energy arrays + >>> T = np.array([300, 600, 900, 1200], dtype=np.float64) + >>> E = np.array([1e9, 2e9, 3e9, 4e9], dtype=np.float64) + >>> + >>> # Create and generate the container + >>> with SfgComposer() as sfg: + >>> container = InterpolationArrayContainer("MyMaterial", T, E) + >>> sfg.generate(container) + """ + def __init__(self, name: str, temperature_array: np.ndarray, energy_density_array: np.ndarray): + """Initialize the interpolation container. + Args: + name (str): Name for the generated C++ class. + temperature_array (np.ndarray): Array of temperature values (K). + Must be monotonically increasing. + energy_density_array (np.ndarray): Array of energy density values (J/m³) + corresponding to temperature_array. + Raises: + ValueError: If arrays are empty, have different lengths, or are not monotonic. + """ + super().__init__() + self.name = name + self.T_array = temperature_array + self.E_array = energy_density_array + + # Prepare arrays and determine best method + self.data = prepare_interpolation_arrays(self.T_array, self.E_array) + self.method = self.data["method"] + + # Store arrays for binary search (always available) + self.T_bs = self.data["T_bs"] + self.E_bs = self.data["E_bs"] + + # Store arrays for double lookup if available + if self.method == "double_lookup": + self.T_eq = self.data["T_eq"] + self.E_neq = self.data["E_neq"] + self.E_eq = self.data["E_eq"] + self.inv_delta_E_eq = self.data["inv_delta_E_eq"] + self.idx_map = self.data["idx_map"] + self.has_double_lookup = True + else: + self.has_double_lookup = False + + @classmethod + def from_material(cls, name: str, material): + """Create an interpolation container from a material object. + Args: + name (str): Name for the generated C++ class. + material: Material object with temperature and energy properties. + Must have energy_density_temperature_array and energy_density_array attributes. + Returns: + InterpolationArrayContainer: Container with arrays for interpolation. + """ + return cls(name, material.energy_density_temperature_array, material.energy_density_array) + + def _generate_binary_search(self, sfg: SfgComposer): + """Generate code for binary search interpolation. + Args: + sfg (SfgComposer): Source file generator composer. + Returns: + list: List of public members for the C++ class. + """ + T_bs_arr_values = ", ".join(str(v) for v in self.T_bs) + E_bs_arr_values = ", ".join(str(v) for v in self.E_bs) + + E_target = sfg.var("E_target", "double") + + return [ + # Binary search arrays + f"static constexpr std::array< double, {self.T_bs.shape[0]} > T_bs {{ {T_bs_arr_values} }}; \n" + f"static constexpr std::array< double, {self.E_bs.shape[0]} > E_bs {{ {E_bs_arr_values} }}; \n", + + # Binary search method + sfg.method("interpolateBS", returns=PsCustomType("[[nodiscard]] double"), inline=True, const=True)( + sfg.expr("return interpolate_binary_search_cpp({}, *this);", E_target) + ) + ] + + def _generate_double_lookup(self, sfg: SfgComposer): + """Generate code for double lookup interpolation. + Args: + sfg (SfgComposer): Source file generator composer. + Returns: + list: List of public members for the C++ class. + """ + if not self.has_double_lookup: + return [] + + T_eq_arr_values = ", ".join(str(v) for v in self.T_eq) + E_neq_arr_values = ", ".join(str(v) for v in self.E_neq) + E_eq_arr_values = ", ".join(str(v) for v in self.E_eq) + idx_mapping_arr_values = ", ".join(str(v) for v in self.idx_map) + + E_target = sfg.var("E_target", "double") + + return [ + # Double lookup arrays + f"static constexpr std::array< double, {self.T_eq.shape[0]} > T_eq {{ {T_eq_arr_values} }}; \n" + f"static constexpr std::array< double, {self.E_neq.shape[0]} > E_neq {{ {E_neq_arr_values} }}; \n" + f"static constexpr std::array< double, {self.E_eq.shape[0]} > E_eq {{ {E_eq_arr_values} }}; \n" + f"static constexpr double inv_delta_E_eq = {self.inv_delta_E_eq}; \n" + f"static constexpr std::array< int, {self.idx_map.shape[0]} > idx_map {{ {idx_mapping_arr_values} }}; \n", + + # Double lookup method + sfg.method("interpolateDL", returns=PsCustomType("[[nodiscard]] double"), inline=True, const=True)( + sfg.expr("return interpolate_double_lookup_cpp({}, *this);", E_target) + ) + ] + + def generate(self, sfg: SfgComposer): + """Generate C++ code for the interpolation container. + This method generates a C++ class with the necessary arrays and methods + for temperature-energy interpolation. + Args: + sfg (SfgComposer): Source file generator composer. + """ + sfg.include("<array>") + sfg.include("pymatlib_interpolators/interpolate_binary_search_cpp.h") + + public_members = self._generate_binary_search(sfg) + + # Add double lookup if available + if self.has_double_lookup: + sfg.include("pymatlib_interpolators/interpolate_double_lookup_cpp.h") + public_members.extend(self._generate_double_lookup(sfg)) + + # Add interpolate method that uses recommended approach + E_target = sfg.var("E_target", "double") + if self.has_double_lookup: + public_members.append( + sfg.method("interpolate", returns=PsCustomType("[[nodiscard]] double"), inline=True, const=True)( + sfg.expr("return interpolate_double_lookup_cpp({}, *this);", E_target) + ) + ) + else: + public_members.append( + sfg.method("interpolate", returns=PsCustomType("[[nodiscard]] double"), inline=True, const=True)( + sfg.expr("return interpolate_binary_search_cpp({}, *this);", E_target) + ) + ) + + # Generate the class + sfg.klass(self.name)( + sfg.public(*public_members) + ) diff --git a/src/pymatlib/core/interpolators.py b/src/pymatlib/core/interpolators.py index edb64db1fc74995180f35948d7c859737f249f1a..7a86d7a7499c0037520ff5d460b27968377189ee 100644 --- a/src/pymatlib/core/interpolators.py +++ b/src/pymatlib/core/interpolators.py @@ -1,194 +1,14 @@ import numpy as np import sympy as sp from typing import Union, List, Tuple -from pymatlib.core.models import wrapper, material_property_wrapper +from pymatlib.core.models import sympy_wrapper, material_property_wrapper from pymatlib.core.typedefs import Assignment, ArrayTypes, MaterialProperty from pymatlib.core.data_handler import check_equidistant, check_strictly_increasing -from pystencils.types import PsCustomType -from pystencilssfg import SfgComposer -from pystencilssfg.composer.custom import CustomGenerator COUNT = 0 -class InterpolationArrayContainer(CustomGenerator): - """Container for energy-temperature interpolation arrays and methods. - - This class stores temperature and energy density arrays and generates C++ code - for efficient bilateral conversion between these properties. It supports both - binary search interpolation (O(log n)) and double lookup interpolation (O(1)) - with automatic method selection based on data characteristics. - - Attributes: - name (str): Name for the generated C++ class. - T_array (np.ndarray): Array of temperature values (must be monotonically increasing). - E_array (np.ndarray): Array of energy density values corresponding to T_array. - method (str): Interpolation method selected ("binary_search" or "double_lookup"). - T_bs (np.ndarray): Temperature array prepared for binary search. - E_bs (np.ndarray): Energy array prepared for binary search. - has_double_lookup (bool): Whether double lookup interpolation is available. - - If has_double_lookup is True, the following attributes are also available: - T_eq (np.ndarray): Equidistant temperature array for double lookup. - E_neq (np.ndarray): Non-equidistant energy array for double lookup. - E_eq (np.ndarray): Equidistant energy array for double lookup. - inv_delta_E_eq (float): Inverse of the energy step size for double lookup. - idx_map (np.ndarray): Index mapping array for double lookup. - - Examples: - >>> import numpy as np - >>> from pystencils_sfg import SfgComposer - >>> from pymatlib.core.interpolators import InterpolationArrayContainer - >>> - >>> # Create temperature and energy arrays - >>> T = np.array([300, 600, 900, 1200], dtype=np.float64) - >>> E = np.array([1e9, 2e9, 3e9, 4e9], dtype=np.float64) - >>> - >>> # Create and generate the container - >>> with SfgComposer() as sfg: - >>> container = InterpolationArrayContainer("MyMaterial", T, E) - >>> sfg.generate(container) - """ - def __init__(self, name: str, temperature_array: np.ndarray, energy_density_array: np.ndarray): - """Initialize the interpolation container. - Args: - name (str): Name for the generated C++ class. - temperature_array (np.ndarray): Array of temperature values (K). - Must be monotonically increasing. - energy_density_array (np.ndarray): Array of energy density values (J/m³) - corresponding to temperature_array. - Raises: - ValueError: If arrays are empty, have different lengths, or are not monotonic. - """ - super().__init__() - self.name = name - self.T_array = temperature_array - self.E_array = energy_density_array - - # Prepare arrays and determine best method - self.data = prepare_interpolation_arrays(self.T_array, self.E_array) - self.method = self.data["method"] - - # Store arrays for binary search (always available) - self.T_bs = self.data["T_bs"] - self.E_bs = self.data["E_bs"] - - # Store arrays for double lookup if available - if self.method == "double_lookup": - self.T_eq = self.data["T_eq"] - self.E_neq = self.data["E_neq"] - self.E_eq = self.data["E_eq"] - self.inv_delta_E_eq = self.data["inv_delta_E_eq"] - self.idx_map = self.data["idx_map"] - self.has_double_lookup = True - else: - self.has_double_lookup = False - - @classmethod - def from_material(cls, name: str, material): - """Create an interpolation container from a material object. - Args: - name (str): Name for the generated C++ class. - material: Material object with temperature and energy properties. - Must have energy_density_temperature_array and energy_density_array attributes. - Returns: - InterpolationArrayContainer: Container with arrays for interpolation. - """ - return cls(name, material.energy_density_temperature_array, material.energy_density_array) - - def _generate_binary_search(self, sfg: SfgComposer): - """Generate code for binary search interpolation. - Args: - sfg (SfgComposer): Source file generator composer. - Returns: - list: List of public members for the C++ class. - """ - T_bs_arr_values = ", ".join(str(v) for v in self.T_bs) - E_bs_arr_values = ", ".join(str(v) for v in self.E_bs) - - E_target = sfg.var("E_target", "double") - - return [ - # Binary search arrays - f"static constexpr std::array< double, {self.T_bs.shape[0]} > T_bs {{ {T_bs_arr_values} }}; \n" - f"static constexpr std::array< double, {self.E_bs.shape[0]} > E_bs {{ {E_bs_arr_values} }}; \n", - - # Binary search method - sfg.method("interpolateBS", returns=PsCustomType("[[nodiscard]] double"), inline=True, const=True)( - sfg.expr("return interpolate_binary_search_cpp({}, *this);", E_target) - ) - ] - - def _generate_double_lookup(self, sfg: SfgComposer): - """Generate code for double lookup interpolation. - Args: - sfg (SfgComposer): Source file generator composer. - Returns: - list: List of public members for the C++ class. - """ - if not self.has_double_lookup: - return [] - - T_eq_arr_values = ", ".join(str(v) for v in self.T_eq) - E_neq_arr_values = ", ".join(str(v) for v in self.E_neq) - E_eq_arr_values = ", ".join(str(v) for v in self.E_eq) - idx_mapping_arr_values = ", ".join(str(v) for v in self.idx_map) - - E_target = sfg.var("E_target", "double") - - return [ - # Double lookup arrays - f"static constexpr std::array< double, {self.T_eq.shape[0]} > T_eq {{ {T_eq_arr_values} }}; \n" - f"static constexpr std::array< double, {self.E_neq.shape[0]} > E_neq {{ {E_neq_arr_values} }}; \n" - f"static constexpr std::array< double, {self.E_eq.shape[0]} > E_eq {{ {E_eq_arr_values} }}; \n" - f"static constexpr double inv_delta_E_eq = {self.inv_delta_E_eq}; \n" - f"static constexpr std::array< int, {self.idx_map.shape[0]} > idx_map {{ {idx_mapping_arr_values} }}; \n", - - # Double lookup method - sfg.method("interpolateDL", returns=PsCustomType("[[nodiscard]] double"), inline=True, const=True)( - sfg.expr("return interpolate_double_lookup_cpp({}, *this);", E_target) - ) - ] - - def generate(self, sfg: SfgComposer): - """Generate C++ code for the interpolation container. - This method generates a C++ class with the necessary arrays and methods - for temperature-energy interpolation. - Args: - sfg (SfgComposer): Source file generator composer. - """ - sfg.include("<array>") - sfg.include("pymatlib_interpolators/interpolate_binary_search_cpp.h") - - public_members = self._generate_binary_search(sfg) - - # Add double lookup if available - if self.has_double_lookup: - sfg.include("pymatlib_interpolators/interpolate_double_lookup_cpp.h") - public_members.extend(self._generate_double_lookup(sfg)) - - # Add interpolate method that uses recommended approach - E_target = sfg.var("E_target", "double") - if self.has_double_lookup: - public_members.append( - sfg.method("interpolate", returns=PsCustomType("[[nodiscard]] double"), inline=True, const=True)( - sfg.expr("return interpolate_double_lookup_cpp({}, *this);", E_target) - ) - ) - else: - public_members.append( - sfg.method("interpolate", returns=PsCustomType("[[nodiscard]] double"), inline=True, const=True)( - sfg.expr("return interpolate_binary_search_cpp({}, *this);", E_target) - ) - ) - - # Generate the class - sfg.klass(self.name)( - sfg.public(*public_members) - ) - - def interpolate_equidistant( T: Union[float, sp.Symbol], T_base: float, @@ -217,19 +37,19 @@ def interpolate_equidistant( sym_idx = sp.symbols(label + '_idx') # , cls=sp.Idx) sym_dec = sp.Symbol(label + "_dec") - T_base = wrapper(T_base) # T_base = sp.Float(T_base) - T_incr = wrapper(T_incr) # T_incr = sp.Float(T_incr) + T_base = sympy_wrapper(T_base) # T_base = sp.Float(T_base) + T_incr = sympy_wrapper(T_incr) # T_incr = sp.Float(T_incr) pos = (T - T_base) / T_incr pos_dec = pos - sp.floor(pos) result = sp.Piecewise( - (wrapper(v_array[0]), T < T_base), - (wrapper(v_array[-1]), T >= T_base + (len(v_array) - 1) * T_incr), + (sympy_wrapper(v_array[0]), T < T_base), + (sympy_wrapper(v_array[-1]), T >= T_base + (len(v_array) - 1) * T_incr), ((1 - sym_dec) * sym_data[sym_idx] + sym_dec * sym_data[sym_idx + 1], True) ) sub_expressions = [ - Assignment(sym_data, tuple(wrapper(v_array)), "double[]"), + Assignment(sym_data, tuple(sympy_wrapper(v_array)), "double[]"), Assignment(sym_idx, pos, "int"), Assignment(sym_dec, pos_dec, "double") ] @@ -283,8 +103,8 @@ def interpolate_lookup( sym_expr = sp.Symbol(label + "_expr") - T_array = wrapper(T_array) - v_array = wrapper(v_array) + T_array = sympy_wrapper(T_array) + v_array = sympy_wrapper(v_array) conditions = [ (v_array[0], T < T_array[0]), diff --git a/src/pymatlib/core/models.py b/src/pymatlib/core/models.py index 80bcf2ee5ffe17797abce1acca1f8440bc6b2515..294316d9d18476c004abae58ccba7ed4b20ccf4c 100644 --- a/src/pymatlib/core/models.py +++ b/src/pymatlib/core/models.py @@ -11,7 +11,7 @@ ABSOLUTE_ZERO = 0.0 # Kelvin DEFAULT_TOLERANCE = 1e-10 -def wrapper(value: Union[sp.Expr, NumericType, ArrayTypes, MaterialProperty]) \ +def sympy_wrapper(value: Union[sp.Expr, NumericType, ArrayTypes, MaterialProperty]) \ -> Union[sp.Expr, List[sp.Expr]]: """ Wraps various input types into sympy expressions. @@ -47,7 +47,7 @@ def material_property_wrapper(value: Union[sp.Expr, NumericType, ArrayTypes]) \ Returns: MaterialProperty object containing the wrapped value. """ - wrapped_value = wrapper(value) + wrapped_value = sympy_wrapper(value) return MaterialProperty(wrapped_value) @@ -81,7 +81,7 @@ def _prepare_material_expressions(*properties): sub_assignments.extend(prop.assignments) expressions.append(prop.expr) else: - expressions.append(wrapper(prop)) + expressions.append(sympy_wrapper(prop)) return expressions, sub_assignments @@ -119,7 +119,7 @@ def density_by_thermal_expansion( raise ValueError(f"Thermal expansion coefficient must be between -3e-5 and 0.001, got {thermal_expansion_coefficient}") try: - tec_expr = thermal_expansion_coefficient.expr if isinstance(thermal_expansion_coefficient, MaterialProperty) else wrapper(thermal_expansion_coefficient) + tec_expr = thermal_expansion_coefficient.expr if isinstance(thermal_expansion_coefficient, MaterialProperty) else sympy_wrapper(thermal_expansion_coefficient) sub_assignments = thermal_expansion_coefficient.assignments if isinstance(thermal_expansion_coefficient, MaterialProperty) else [] density = density_base * (1 + tec_expr * (temperature - temperature_base)) ** (-3) return MaterialProperty(density, sub_assignments) @@ -175,9 +175,9 @@ def energy_density_standard( (density_expr, heat_capacity_expr, latent_heat_expr), sub_assignments \ = _prepare_material_expressions(density, heat_capacity, latent_heat) - density_expr = density.expr if isinstance(density, MaterialProperty) else wrapper(density) - heat_capacity_expr = heat_capacity.expr if isinstance(heat_capacity, MaterialProperty) else wrapper(heat_capacity) - latent_heat_expr = latent_heat.expr if isinstance(latent_heat, MaterialProperty) else wrapper(latent_heat) + density_expr = density.expr if isinstance(density, MaterialProperty) else sympy_wrapper(density) + heat_capacity_expr = heat_capacity.expr if isinstance(heat_capacity, MaterialProperty) else sympy_wrapper(heat_capacity) + latent_heat_expr = latent_heat.expr if isinstance(latent_heat, MaterialProperty) else sympy_wrapper(latent_heat) energy_density_expr = density_expr * (temperature * heat_capacity_expr + latent_heat_expr) return MaterialProperty(energy_density_expr, sub_assignments) diff --git a/src/pymatlib/data/alloys/SS304L/SS304L.yaml b/src/pymatlib/data/alloys/SS304L/SS304L.yaml index 114f79b817613775afc72fedfc04bd30b8444f36..5cb9ea99157b56668f261653e5fc3f2207e1288e 100644 --- a/src/pymatlib/data/alloys/SS304L/SS304L.yaml +++ b/src/pymatlib/data/alloys/SS304L/SS304L.yaml @@ -136,8 +136,8 @@ properties: #OR # energy_density: compute #OR - energy_density: compute - #compute: total_enthalpy # Explicit model selection + energy_density: + compute: total_enthalpy # Explicit model selection # User can specify either: energy_density_temperature_array: (300, 3000, 541) # int for number of points # OR diff --git a/tests/cpp/TestArrayContainer.py b/tests/cpp/TestArrayContainer.py index 8fc49760bbba61743ae2cabc84cde4b6a7d3c39f..fb9881d5dd891392be19366da0f62b0b79831d18 100644 --- a/tests/cpp/TestArrayContainer.py +++ b/tests/cpp/TestArrayContainer.py @@ -3,7 +3,7 @@ from pystencils import fields from importlib.resources import files from pystencilssfg import SourceFileGenerator from pymatlib.core.yaml_parser import create_alloy_from_yaml -from pymatlib.core.interpolators import InterpolationArrayContainer +from pymatlib.core.codegen.interpolation_array_container import InterpolationArrayContainer with SourceFileGenerator() as sfg: