COMSOL 4.2 Java API Changes

  • Class files compiled with COMSOL 4.1 or lower version need to be recompiled
  • The far field feature in the Electromagnetic Waves interface has changed from being a boundary feature with a boundary selection only, to being a domain feature with a domain selection and, as a sub feature, a boundary selection.
  • The dependent variable associated with gauge fixing in the Magnetic Fields, Magnetic and Electric Fields, Electromagnetic Waves and Transient Electromagnetic Waves interfaces, is now unique per interface and is no longer available in the model scope, for example, mod1.psi, etc. Instead the gauge fixing field is only available in the interface scope as, for example, mod1.mf.psi, etc.
  • In the scattered field formulation in the Electromagnetic Waves interface, the scattered field is no longer available in the model scope, for example, mod1.relEx. Instead the scattered field is only available in the interface scope as, for example, mod1.emw.relEx.
  • In the Solid Mechanics interfaces (SolidMechanics, PiezoelectricDevices, AcousticStructure, Poroelasticity, ThermallyInducedStresses, JouleHeatingThermalExpansion, TransientAcousticStructure, FluidStructureInteraction), tensors in local coordinate systems (el, eel, Sl, si, and ei) have new names. The coordinates of the local system (for example x1, x2, x3) are no longer used. Instead 1, 2, and 3 are used together with double indexing for all components. As an example, elX2 is replaced by el22 and elx2x3 is replaced by el23. The tensors si and ei have changed names to Sil and eil.
  • In the Darcy’s Law interface and Richards’ Equation interface in the Subsurface Flow Module, the compressibility of fluid is now a material parameter and they do no longer have a default value. If the default value was used you now have to set the value. The following example sets the permeability to the old default value: model.physics("dl").feature("smm1").set(chif_mat,userdef); model.physics("dl").feature("smm1").set(kappa,4e-10);
  • In the Poroelasticity interface in the Subsurface Flow Module, the compressibility of fluid and the Biot-Willis coefficient are now material parameter and they do no longer have a default value. If the default value was used you now have to set the value. The following example sets the permeability to the old default value: model.physics("dl").feature("smm1").set(chif_mat,userdef); model.physics("dl").feature("smm1").set(kappa,4e-10);
  • The Level Set and Phase Field interfaces now include the Initial Interface feature as default. If you have a model created in an earlier version of COMSOL, it will fail to create a feature with the same tag name.

COMSOL 4.1 Java API Changes

The following changes were made to the COMSOL Java API between version 4.0a and 4.1:

  • In version 4.0a the property nonlin in the stationary solver could have the values auto, on, off, and linearized. The default was in most cases auto, but in some cases, specifically in a frequency-domain study, the default was linearized. In version 4.1 the possible values are auto, on, off, and linper, with auto as default, except in the Frequency Domain, Linearized study step where the default is linper. The value linearized can still be set, but this is treated as auto. If the problem is linear and the linearization point is zero, auto should give the same solution as linearized. For nonlinear problems where the linearization point is zero, the solution given by auto might be slightly different, and probably more accurate, while changing to off should give exactly the same solution as linearized. When there is a nonzero linearization point it is relevant to use option linper. This option works like linearized except that source terms which are to contribute in the linearized problem must be enclosed by the linper operator.
  • In this CFD Module, Subsurface Flow mode, in the Darcy’s Law interface, Brinkman interface, Richards’ Equation interface, and the Poroelasticity interface, the permeability and porosity are now material parameters and they do no longer have a default value. If the default value was used in a Java-file you now have to set the value. The following example sets the permeability to the old default value: model.physics("dl").feature("dlm1").set(kappa_mat,userdef); model.physics("dl").feature("dlm1").set(kappa,3e-11);
  • The pressure variable in solid mechanics, typically solid.pw, now only gets allocated degrees of freedom for incompressible materials. If you have referred to it, for example, during segregation in the solver, the code will have to be changed to remove the field.
  • The solution to eigenvalue and eigenfrequency problems may now appear in a different order.
  • The Batteries & Fuel Cells Module’s boundary feature BoundaryReactionCoefficient, is tagged by rc instead of brc by default. This means that files that explicitly refer to the old default tag name must be modified to refer to the new tag name.

COMSOL 4.0a Java API Changes

The following changes were made to the COMSOL API between version 4.0 and 4.0a:

  • The load face parameter (Fph) of the Phase feature in AcousticStructure, TransientAcousticStructure, ThermallyInducedStresses, SolidMechanics, JouleHeatingThermalExpansion, Poroelasticity, and FluidStructureInteraction has changed interpretation from degrees to radians.
  • physics.field() of Beam and Truss are not backward compatible with 4.0. Scalar fields are now vector fields.
  • The variables for strain and stress in the Shell interface have been renamed. Variable names that began with lowercase s now begin with uppercase S. For variables names that ended in lowercase l (L), the letter was moved to the third position. For example, emXXl is now emlXX.
  • Force loads on solids and trusses have been moved from material to spatial frame. This implies that index notation of some variables have changed from uppercase XYZ to lowercase xyz.
  • The acoustics interfaces (PressureAcoustics, TransientPressureAcoustics, AcousticStructure, and TransientAcousticStructure) have been moved from material to spatial frame. This implies that index notation of vector variables have change from uppercase XYZ to lowercase xyz.