-
Notifications
You must be signed in to change notification settings - Fork 62
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Nonlinear fitting #148
Comments
Not too sure of the difference between the fitting problem types below? e.g. static fitting vs data point vector static fitting. Are some of these old - can some be removed? SELECT CASE(problem%specification(3))
CASE(PROBLEM_STATIC_FITTING_SUBTYPE)
CASE(PROBLEM_STANDARD_DATA_FITTING_SUBTYPE)
CASE(PROBLEM_GENERALISED_DATA_FITTING_SUBTYPE)
CASE(PROBLEM_MAT_PROPERTIES_DATA_FITTING_SUBTYPE)
CASE(PROBLEM_DATA_POINT_VECTOR_STATIC_FITTING_SUBTYPE)
CASE(PROBLEM_DATA_POINT_VECTOR_QUASISTATIC_FITTING_SUBTYPE)
CASE(PROBLEM_VECTOR_DATA_FITTING_SUBTYPE)
CASE(PROBLEM_DIV_FREE_VECTOR_DATA_FITTING_SUBTYPE) |
Yes, there are a few old types that haven't been merged/removed. The better one to look at is equationsSetSpecification = [iron.EquationsSetClasses.FITTING, and problemSpecification = [iron.ProblemClasses.FITTING, Your equations set will be a fibre fitting as the objective function is quite different. There will need to be the distinction between linear/non-linear etc. You will also need to have something that is specific to using the Diffusion tensor i.e. f^T.D.f For the problem, you will definatly need to distinguish linear/non-linear static/dynamic. What the particular form of objective function (apart from linear/nonlinear) shouldn't matter. |
Thanks @chrispbradley. I'll add in the following: equationsSetSpecification = [iron.EquationsSetClasses.FITTING, and problemSpecification = [iron.ProblemClasses.FITTING, Lets set this up to use the diffusion tensor by default (without specifying additional subtypes) and then discuss how to add in a subtype to select between different types of objective functions - will simplify/speed up implementation. |
Hi Prasad, equationsSetSpecification = [iron.EquationsSetClasses.FITTING, ??? The problem specification of problemSpecification = [iron.ProblemClasses.FITTING, seems fine as the nonlinearity is the defining feature of the solver workflow. |
Thanks Chris, yup sure, will use that subtype for the equationsSet. |
Hi Prasad, did you see 3c7f4ac ? Just trying to give you enough time to change it before I comment to change it again ;-) |
Yup, lets do it as: equationsSetSpecification = [iron.EquationsSetClasses.FITTING, Does that mean the GAUSS fitting should also be moved under data fitting? |
Hi Prasad, equationsSetSpecification = [iron.EquationsSetClasses.FITTING, |
Ah, ok, so when writing up the Equations set we would name it something like DIFFUSION_TENSOR_FIBRE_FITTING and inside there check the EquationsSetTypes to determine the input data (either Gauss point or data points) to prevent duplicating code? |
Actually, everything seems to be in Fitting_FiniteElementCalculate (currently it initialises a lot of linear matrices/mappings pointers). Should I add in the nonlinear matrices there too or rename it LinearFitting_FiniteElementCalculate, and add in a NonlinearFitting_FiniteElementCalculate? |
Depends what you need to do. If you are doing something that would be the same between data and Gauss but different between fitting objectives then look at the subtype. The type should split into gauss and data point subroutines for the actual equations and so then look at the subsubtype (or whatever it is called). |
The Fitting_FiniteElementCalculate will only be called if it is a linear (FEM) equation set. If the equations set is nonlinear then it will call ...ResidualEvaluate ...JacobianEvaluate etc. |
Ah of course! Its been a while : ) |
Which probably do not exist for fitting at the moment and so will need to be added. |
Yup, will add them in. Thanks. |
Great |
Currently, only linear fitting is implemented:
We would like to implement nonlinear fitting.
Add a new problem subtype:
Rename existing linear fitting as:
Proposed implementation steps:
The text was updated successfully, but these errors were encountered: