Dear FeBio team,
Is it possible to run optimization to match experimental data (data-fit) on multiple nodes rather than a single one?
I am working on an optimization problem where the optimization parameter is the Young's Modulus of a material, and the experimental data to match is the vertical displacement of a set of nodes. At the moment, my model works if I set the optimization with a single node, rather multiple. For example, I simply tried to add a second node to the list, and the optimization still works, but the results I get are optimized only relative to one of the two nodes, and not, for example, to the average value of the vertical displacement of the two. I have tried in some other ways, but without success.
This is my input file to run the optimization, which works correctly, but only for one node:
<?xml version="1.0" encoding="ISO-8859-1"?>
<febio_optimize version="2.0">
<Options type="levmar">
<obj_tol>0.00001</obj_tol>
<f_diff_scale>0.0001</f_diff_scale>
<log_level>LOG_DEFAULT</log_level>
<print_level>PRINT_ITERATIONS</print_level>
</Options>
<Parameters>
<param name="fem.material('Trab_Mat').E">0.10,0.0001,100. 00</param>
</Parameters>
<Objective type="data-fit">
<fnc type="parameter">
<param name="fem.node_data('uy', 1118)"/>
</fnc>
<data>
<pt>0.0,0.00000000</pt>
<pt>0.1,0.00098545</pt>
<pt>0.2,0.00196370</pt>
<pt>0.3,0.00293456</pt>
<pt>0.4,0.00389790</pt>
<pt>0.5,0.00485356</pt>
<pt>0.6,0.00580141</pt>
<pt>0.7,0.00674135</pt>
<pt>0.8,0.00767325</pt>
<pt>0.9,0.00859704</pt>
<pt>1.0,0.00951262</pt>
</data>
</Objective>
</febio_optimize> zz0.fd1meaq7omqzz
What I've tried to do, for example (added more nodes to the list): <param name="fem.node_data('uy', 1118, 1120, 1122)"/>
Any suggestion/tip/turnaround?
Thank you very much for your help!
Leonardo
Is it possible to run optimization to match experimental data (data-fit) on multiple nodes rather than a single one?
I am working on an optimization problem where the optimization parameter is the Young's Modulus of a material, and the experimental data to match is the vertical displacement of a set of nodes. At the moment, my model works if I set the optimization with a single node, rather multiple. For example, I simply tried to add a second node to the list, and the optimization still works, but the results I get are optimized only relative to one of the two nodes, and not, for example, to the average value of the vertical displacement of the two. I have tried in some other ways, but without success.
This is my input file to run the optimization, which works correctly, but only for one node:
<?xml version="1.0" encoding="ISO-8859-1"?>
<febio_optimize version="2.0">
<Options type="levmar">
<obj_tol>0.00001</obj_tol>
<f_diff_scale>0.0001</f_diff_scale>
<log_level>LOG_DEFAULT</log_level>
<print_level>PRINT_ITERATIONS</print_level>
</Options>
<Parameters>
<param name="fem.material('Trab_Mat').E">0.10,0.0001,100. 00</param>
</Parameters>
<Objective type="data-fit">
<fnc type="parameter">
<param name="fem.node_data('uy', 1118)"/>
</fnc>
<data>
<pt>0.0,0.00000000</pt>
<pt>0.1,0.00098545</pt>
<pt>0.2,0.00196370</pt>
<pt>0.3,0.00293456</pt>
<pt>0.4,0.00389790</pt>
<pt>0.5,0.00485356</pt>
<pt>0.6,0.00580141</pt>
<pt>0.7,0.00674135</pt>
<pt>0.8,0.00767325</pt>
<pt>0.9,0.00859704</pt>
<pt>1.0,0.00951262</pt>
</data>
</Objective>
</febio_optimize> zz0.fd1meaq7omqzz
What I've tried to do, for example (added more nodes to the list): <param name="fem.node_data('uy', 1118, 1120, 1122)"/>
Any suggestion/tip/turnaround?
Thank you very much for your help!
Leonardo
Comment