Triphasic parameter optimisation - 2.7

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • fahdmahmood
    Junior Member
    • Apr 2016
    • 10

    Triphasic parameter optimisation - 2.7

    Hi

    I am trying to fit some data to a Triphasic model using the attached feb/opt files. I'm using the most recently released version (2.7) - I see the parameter optimisation module has been updated in this release. I'm getting a fatal error - invalid version number for febio_optimize - is this because my OPT file needs updated?

    I have had a look through the documentation in the 2.7 release and I think the files are formatted as required, but must be missing something.

    Thanks
    Attached Files
  • maas
    Lead Code Developer
    • Nov 2007
    • 3459

    #2
    Hi,

    The syntax of optimization problems was revised to accommodate more powerful optimization capabilities. I have attached the modified optimization input file. Note that there is no Indentor material in the Test.feb file, so this modified optimization file will not run without fixing this issue in the input file first. Let me know if you still have problems.

    Cheers,

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

    Comment

    • fahdmahmood
      Junior Member
      • Apr 2016
      • 10

      #3
      Thanks for taking the time to look at this Dr Maas.

      I have attempted to add a rigid body as an Indentor in the attached .feb model - I seem to have made some sort of error whereby I'm receiving a message saying there is no load acting on the system, though it does run to a normal termination. Unfortunately, even if I try to run parameter optimization with this file, I am still getting the same fatal error regarding the invalid version number.
      Attached Files

      Comment

      • maas
        Lead Code Developer
        • Nov 2007
        • 3459

        #4
        Hi,

        Did you use the modified version of the optimization input file I attached yesterday? Because the optimization runs fine for me with this input file.

        The "no-force" warning is because the residual had dropped below a threshold. You can turn this feature off by setting the min_residual parameter in the Control section of the input file to zero. In any case, it shouldn't really affect your solution.

        I did notice that your rigid contact is defined strangely. One of the nodes is on the opposite side of the mesh than the other three nodes. This is resulting in some strange results. Perhaps double-check the boundary conditions and the rigid contact to make sure the model is set up correctly.

        Cheers,

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

        Comment

        • fahdmahmood
          Junior Member
          • Apr 2016
          • 10

          #5
          Hi

          My apologies, I am having to remove some data from the opt files to make them small enough to paste in the forum and seem to have mixed things up - have got it working now.

          Thanks for pointing out the issue with the rigid contact too - these should now all be on the same side of the mesh.

          I can now optimise and am looking to add more variables to achieve a better fit - I had previously asked you about adding diffusivity with the old syntax and you had suggested:
          <param name="Triphasic NaCl.sol1.diffusivity.diff">0.00044, 0, 1, 0.0000</param>

          I have tried to adapt this to the following in the new file:
          <param name="fem.material[0].sol1.diffusivity.diff">0.00044, 0, 0.001, 0.0001</param>

          But unfortunately this produces the error ' failure initializing the task: optimize' - am I right in thinking my syntax isn't quite right?

          Thanks
          Fahd
          Attached Files

          Comment

          • maas
            Lead Code Developer
            • Nov 2007
            • 3459

            #6
            Indeed, the syntax is incorrect. It should be:

            Code:
            <param name="fem.material[0].solute[0].diffusivity.diff">0.00044, 0.001, 0.0001</param>
            Note that the index of the solute (i.e. 0) refers to the order of the solute property as defined in the material, not the sol attribute of the solute. I hope that makes sense. Let me know if that worked for you.

            Cheers,

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

            Comment

            • fahdmahmood
              Junior Member
              • Apr 2016
              • 10

              #7
              Many thanks- I now have the optimisation running.

              Unfortunately, it now causes a fatal error as soon as the value of the diffusivity changes. I can't quite figure out why this is the case. I have truncated my opt file so it now contains a summarised (every 10th value) of the data so I can upload it in its entirety. I have fit this data to a biphasic model and have input the initial values of E/k/M/Beta based on the values derived there. Would you have any advice on what steps I might take to improve the fit here?

              Thanks again for your time.
              Attached Files

              Comment

              • ateshian
                Developer
                • Dec 2007
                • 1839

                #8
                Hi Fahd,

                You are performing an optimization on the solute diffusivity d in the tissue, setting a range between 0.0001 and 0.1, while keeping the solute diffusivity d0 in free solution fixed at 0.001. However, it is not acceptable to have d > d0, that's why you are getting a fatal error. You should limit the range of d to be ≤ d0.

                Best,

                Gerard

                Comment

                • fahdmahmood
                  Junior Member
                  • Apr 2016
                  • 10

                  #9
                  Thanks Professor, I have got this working and have been trying to run the optimisation. I am able to improve the fit to reach objective values of around 2000 but am struggling to improve things any further - altering the diffusion parameters seems to have minimal impact on the fit. Do you have any advice about what other options I might have?

                  Also, the old parameter optimisation module produced a list of values (I think it was expected/actual) which could be graphed to visually inspect the fit - the new module prints a single variable - could I ask what this represents? Is it an assessment of the fit?

                  Thanks again for you time.

                  Test_opt_2.febTest.feb

                  Comment

                  • ateshian
                    Developer
                    • Dec 2007
                    • 1839

                    #10
                    Hi Fahd,

                    Looking at your optimization, I notice that you are trying to optimize on all the material parameters at the same time (10 in your model). As a general rule this will be very difficult to achieve. I recommend that you fix the parameters that are directly measurable or can be estimated from the literature (such as phi0 and the diffusivities) and also fix the parameters that have a secondary effect under large deformations only (such as beta in the Holmes-Mow solid, and M and alpha in the Holmes-Mow permeability).

                    What are the units you are using in your model? It is possible that these are not self-consistent, please double check those.

                    Also, the old parameter optimisation module produced a list of values (I think it was expected/actual) which could be graphed to visually inspect the fit - the new module prints a single variable - could I ask what this represents? Is it an assessment of the fit?
                    I have not yet familiarized myself with the new optimization module. Hopefully Steve can address this questions.

                    Best,

                    Gerard

                    Comment

                    • fahdmahmood
                      Junior Member
                      • Apr 2016
                      • 10

                      #11
                      Thanks Professor, still struggling a little with this. I have checked my units and think they are all consistent.

                      Steve, would you be able to advise whether the parameter optimisation module allows any graphical evaluation or assessment of fit? What does the single variable printed by the optimisation module represent?

                      Thanks again

                      Comment

                      • maas
                        Lead Code Developer
                        • Nov 2007
                        • 3459

                        #12
                        I'm not sure I understand what you mean by "graphical evaluation". If you want to create a graph of the final curve you can get the data from the logfile, but FEBio itself won't create any graphs.

                        The variable it prints is the value of the objective function that it tries to minimize. The precise form of this function depends on what you are trying to optimize but you can consult the user's manual for more documentation on this function.

                        Cheers,

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

                        Comment

                        Working...
                        X