Parameter Optimization for Biphasic Unconfined Compression Stress-Relaxation

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • JasiaKing
    Junior Member
    • Jun 2017
    • 2

    #16
    Hi,

    I have been trying to optimise a ramp (0.5mm in 5s) and hold (100s) in FEBio2. It will run one iteration and have a fatal error in iteration 2. I have attached my Optimisation file (Optim.txt) and the Model file (A_B_Matrix.feb). I greatly appreciate any help.

    Thank you,
    Jasia
    Attached Files

    Comment

    • dannymason
      Junior Member
      • Apr 2019
      • 3

      #17
      Just a heads up for anyone using FEBio2.8.6 to get this working I had to change the optimization file for the new parameter naming structure.

      These were the changes I made which seemed to work:
      Attached Files

      Comment

      • FernandoD
        Junior Member
        • May 2019
        • 3

        #18
        Hi,

        I have been trying to optimize Ogden parameters for a compression test but the optimization always ends with an error. The model is a cylindrical object compressed by a plate (Rigid Body) by prescribed displacement. I notice that the objective value is too high(10e7). Also, I tried to use the log_level but it does not make difference in the output. Lastly, I am not sure if I input negative or positive values for Force in the optimization file.

        I would be glad if somebody analyze the files attached and help me with this problem.

        Thanks,
        Fernando

        S1_RigidBodyDispl_Curve.febOptimization_Ogden_Force.feb

        Comment

        • maas
          Lead Code Developer
          • Nov 2007
          • 3400

          #19
          Hi Fernando,

          If you set the print_level parameter to 1 (not the log_level):
          Code:
          <print_level>1</print_level>
          FEBio will print the values it is finding for the objective function. You will see that the calculated values are much bigger than the ones you specified, and that they have a different sign. So, I suggest you modify the initial values for the parameters so that you get forces that are of the same order of magnitude, and flip the signs on the target values.

          Best,

          Steve
          Department of Bioengineering, University of Utah
          Scientific Computing and Imaging institute, University of Utah

          Comment

          • FernandoD
            Junior Member
            • May 2019
            • 3

            #20
            Thanks very much Steve!

            Your instructions help me to improve the parameterization. I could minimize the obj. value until 408, then there is a fatal error. In case you are interested, please see the graph below with the comparison. The parameters were input as below:
            <param name="fem.material('Material2').c1">0.0739, 0.0069, 0.79,</param>
            <param name="fem.material('Material2').c2">-5.01e-7, -10, 10,</param>
            <param name="fem.material('Material2').m1">10.3721, 0, 100,</param>
            <param name="fem.material('Material2').m2">30.4608, -10, 1000,</param>
            optimization.jpg

            best,
            Fernando

            Comment

            • eldo97
              Junior Member
              • Oct 2019
              • 9

              #21
              Hi there, I'm using FEBio2 version 2.9.1. Iv created an optimisation file but every time I try and run it I keep getting "Failed initializing the task: optimize". Both the model file and the optimisation .feb files are in the same folder, same working directory. It runs the first model file but fails at the optization file. Any help would be appreciated. Iv tried numerous attempts at other peoples solutions but no luck so far.

              Regards, Lewis
              Attached Files

              Comment

              • maas
                Lead Code Developer
                • Nov 2007
                • 3400

                #22
                Hi Lewis,

                I suspect that the first parameter in the optimization file should be:

                Code:
                <param name="fem.material('Tissue').solid.E">470000, 100000, 100000, 1</param>
                It looks like your file is missing the "solid" part.

                Cheers,

                Steve
                Department of Bioengineering, University of Utah
                Scientific Computing and Imaging institute, University of Utah

                Comment

                • eldo97
                  Junior Member
                  • Oct 2019
                  • 9

                  #23
                  Fantastic, that's solved my problem. Have a nice day.

                  Lewis

                  Comment

                  • helentan
                    Member
                    • Nov 2020
                    • 36

                    #24
                    Originally posted by ateshian View Post
                    Hi Thomas,

                    It appears that the loading platen has its outward normal facing up (away from the cartilage surface). You need to flip the platen 180 degrees so that the normal faces down toward the cartilage surface.

                    Also, your symmetry plane has a width that matches the radius of the cartilage wedge exactly. This means that with compression, as the cartilage expands laterally, it will lose contact with the symmetry plane. I recommend that you increase the width of that plane.

                    Best,

                    Gerard
                    I think I am having the same problem with my model, but I am not too sure what you mean by flipping the platen 180 degrees and how do I do that in FEBio Studio.


                    Hope to hear from you soon. Thank you.

                    Best regards,
                    Helen

                    Comment

                    • ateshian
                      Developer
                      • Dec 2007
                      • 1824

                      #25
                      Hi Helen,

                      You can display surface normals in FEBioStudio by selecting View->Show Normals.

                      If your platen is a planar surface mesh you can rotate it by 180 degrees by selecting that part then Edit->Transform... then enter 180 in the Rotate->Relative->X, Y or Z boxes (whichever axis that works for your model).

                      If your platen is a 3D mesh or a curved 2D surface mesh and the normals are oriented in the wrong direction, rotating the geometry will not work. In that case, there are two options: (1) You need to invert the mesh elements for the platen. Select the part, switch to the Build->Mesh tab and click on Invert->Apply. The normals should switch and point outward. If they don't, something may be wrong with the mesh and you should share your file so we can try to assist you. (2) If the platen represents a rigid impermeable (or porous free-draining) material, you can switch the contact interface to sliding-elastic and use the "flipd normal on secondary" surface option. This assumes that you picked the rigid platen surface as the secondary surface for your contact analysis (which is the proper way to set up a contact interface between rigid and deformable materials).

                      Best,

                      Gerard

                      Comment

                      • sri
                        Junior Member
                        • Apr 2023
                        • 11

                        #26
                        Hello febio members

                        I installed FEBIO studio version 2.3.0. I did the poro-elastic compression and stress relaxation simulation of hydrogel in ABAQUS. Now, I have the force-displacement simulated curve and experimental data.
                        I am trying to use Febio to do the optimisation (curve fitting) to find the permeability, modulus and poison ratio.
                        If possible, any of the members kindly point to a tutorial in the forum that can be followed to learn/perform this.
                        I followed a biphasic webinar (tutorial) on YouTube to perform the simulation in Febio, but at some point, the options in the existing version were varied.
                        So, I am seeking help in the forum to do the parameter optimisation.

                        Thanks

                        Comment

                        • maas
                          Lead Code Developer
                          • Nov 2007
                          • 3400

                          #27
                          Hi,

                          I added a tutorial today on the FEBio Knowledgebase on parameter optimization. The context is not biphasic analysis, but I hope it will get you started. Let me know if you have any further questions.

                          Best,

                          Steve
                          Department of Bioengineering, University of Utah
                          Scientific Computing and Imaging institute, University of Utah

                          Comment

                          • sri
                            Junior Member
                            • Apr 2023
                            • 11

                            #28
                            Hi Steve, Thanks for the procedure. I followed the procedure provided in the knowledgebase page and the posts on unconfined compression for biphasic material.
                            I created the model to apply a displacement of -0.25 in Z, in step-1 from 0 to 500s. In the second step, hold the -0.25 till 3000s.

                            I provided the time-force (experimental) data points to optimise the E and permeability.
                            But it is not working for me. Could anyone tell me, what mistake I made? ​
                            Attached Files

                            Comment

                            • maas
                              Lead Code Developer
                              • Nov 2007
                              • 3400

                              #29
                              Hi sri,

                              There are a couple issues with the setup. In the optimization file, you have a type, since perm is a member of permeability, not solid. The correct syntax for the permeability is:

                              Code:
                                      <param name="fem.material('Material1').permeability.perm">0.0017,0.0005,0.005</param>
                              However, in the model input file, this parameter is defined as a math expression. You can only use constant parameters for optimization, so you need to change this in the input file or in the fs2 model. The change in the input is simple, just remove the "math" attribute from the perm parameter.

                              Also, the parameter "Fz" does not refer to anything in FEBio. If the data you provide for the objective function refers to time-force, you'll have to find a way to generate force data in your forward model. For example, you can try to apply the displacement via a rigid body instead of a prescribed displacement and use a sliding interface between the rigid body and the biphasic material. Then, use the rigid body's reaction force, as is demonstrated in the tutorial above.

                              Aside from this, I also recommend some changes to the model input file. In biphasic analysis it is often better to use a biased mesh, i.e. a mesh whose elements get smaller the closer you are to boundaries that have a non-zero fluid flux. In your case, I recommend setting the R-bias meshing parameter to 0.8.

                              You have set the max time step to 100 and attached a loadcurve that ramps up to 1, probably expecting that the load curve is multiplied by the 100 scale factor. However, for the max time step that doesn't work. For this parameter, if you specify a loadcurve, this curve defines the value and the scale factor is ignored. Therefore, I recommend scaling the load curve for this parameter.

                              Finally, please make sure that the forward model runs as expected before attempting an optimization. Currently, it seems to fail due to an instability that arises as a result of the large deformation.

                              I hope this helps!

                              Best,

                              Steve
                              Department of Bioengineering, University of Utah
                              Scientific Computing and Imaging institute, University of Utah

                              Comment

                              • sri
                                Junior Member
                                • Apr 2023
                                • 11

                                #30
                                Hi maas

                                Thanks. As suggested, I tried to run the forward model and found that it was not running as expected.
                                I did the suggestions you gave, I attached a rigid body to provide the displacement and removed the prescribed displacement.
                                The contact interface changed from tied to sliding. The mesh is updated. But, earlier, with the prescribed displacement, the model ran successfully, But after these changes, the rigid body is not compressing the material.
                                Also, the ramp (0-500s) and relaxation phase (501-2500s) are not taken from LC.
                                I referred to this post (https://forums.febio.org/forum/febio...d-body-contact) to make changes in contact and solver settings.

                                Attached Files

                                Comment

                                Working...
                                X
                                😀
                                😂
                                🥰
                                😘
                                🤢
                                😎
                                😞
                                😡
                                👍
                                👎