# Model Builder Application Release Notes

## Version 1.7.1

### Model Builder

#### Added Features

- Added the ability to visualize the meshes of Surface Models
- Added the ability to apply bathymetry to model faces and edges
- Added the ability to apply bathymetry to meshes
- Added the ability to create meshes of Surface Models.
- Added the ability to specify meshing parameters to Surface Model Faces and Arcs
- Added the ability to change the End Nodes of Arcs
- Added the ability to roundtrip meshes created in Model Builder
- Nodal Groups can now be defined by model edges (surface domains) and model faces (volumetric domains)
- Surface mesh entities now have their own representationb and color
- Added the ability to export specific meshes of model faces
- Added an UI option to show the mesh vertices of a model edge mesh
- Added model information into the Data Info Panel

#### Fixed Bugs

- Converting an End node to a normal Arc Node causes a crash (Mantis: 9563)
- Re-meshing causes a crash (Mantis: 9565)
- Changing Meshing Parameters would cause a crash (Mantis:9502)
- Changing an Arc to an End Node would cause a crash (Mantis:9502)
- Mesher was getting model faces with 0 area (Mantis: 9493)

### Simulation Builder

#### Added Features

- Added Support for Surface Water ADH Models
- Meshing Parameters are now stored in Sim File
- String Properties can now contain new lines, tabs, white spaces etc.. (Mantis: 9149)
- Added support for auxillary geometric elements such as sphereically distributed point sources
- Added support for PT123

#### Fixed Bugs

- Fixed issue with No Analysis Mesh erroneously being reported during export (Mantis 9444)

## Version 1.6.4

### Model Builder

#### Added Features

- Added Model Information (such as bounds) to the Info Panel
- Changed tooltips for color by dropdowns for 2D models
- Meshing dialog now uses absolute or relative mesh length instead of volume constraints

#### Fixed Bugs

- Assigning color to a face in a 2D model caused a crash
- Fixed updating model entity name bug (Mantis: 9583, 9573)
- Fixing adjacency bug between edge use and vertex use. (Mantis:)

### Simulation Builder

#### Added Features

- Updated and renamed ground water simulation template and format files to be GEOTACS
- Added OP RAY and OP MET cards in ADH Exported BC file when needed (Mantis: 9682)
- Added support for optional material properties
- Simulation Builder can now process vegitation that is represented as glyphs

#### Fixed Bugs

- Toggling "Show Advance" would reset the Materials Tab (Mantis 9627)
- Check boxes were not being properly initialized (Mantis 9628)
- Removing last Boundary Condition Set caused strange behavior w/r to Boundary Conditions (Mantis: 9568)
- Function Unique IDs were not properly set
- Some API Changes mistaken NULL as a valid entry of 0
- Default function values were displayed as undefined (Mantis: 9626)
- Widgets migrated during reloading (Mantis: 9624)
- Updating UI when loading in Scene Tree(Mantis: 9529)
- Clearing UI when a new template file is loaded(Mantis: 9584)
- ADH format updated based on CMB feedback (Mantis: 9570)
- ADH Exporter now produces a proper error message when there is no analysis mesh
- Fixed issue with volume meshing models with internal model faces
- Some advance options were still being displayed when Show Advance is off (Mantis:9625)
- Can not reload SBI File (Mantis:9688)

## Version 1.6.3

### Simulation Builder

#### Fixed Bugs

- Added the ability to have a #UILABEL as a SimBuilder output card (See Mantis Issue 9230)
- Now produces a warning letting the user know if the ADH output did not get exported due to a missing analysis mesh
- Fix the bug that advanced properties are shown when Show Advanced checkbox is not checked. (Mantis bug# 0009298)
- Changed the numbering of Vegetation to increment by 1 instead of 100

## Version 1.6.2

### Model Builder

#### Added Features

- Added capability to load a scene file without loading an actual cmb model.
- Added "Hide Shared Entities" checkbox so that all the shared entities can be turned on/off easily.

#### Fixed Bugs

- Fixed slow grow extraction and split problems for 3D.

### Simulation Builder

#### Added Features

- Added multiline support. It is not fully functional yet due to a VTK bug with the XML special characters.
  For a SimBuilder template file, it is treated as just a basic text input with the addition of a subtype. For example, the standard text input looks like:
  <ValueType Name="text"/>
  and the multiline looks like:
  <ValueType Name="text" SubType="multiline text"/>
  * The default value for the multiline is inline character information as well. For example:
  <DefaultValue>the info starts here
  and ends here</DefaultValue>

## Version 1.6.1

### Simulation Builder

#### Fixed Bugs

- In Function Editor, fixed the cursor position to point to the actual syntax error position in the function expression string.
- When exporting files, whitespace in the XML format file is respected in the outputted file.

## Version 1.6.0

### Model Builder

#### Added Features

- Added basic capability to load .cmb file in client-server mode.
- Added "Import BC File" support.
- Added logic to automatically load back .bc file generated from mesher.
- Added feature to create Nodal group from 2d model edges.
- Added capability of converting model coordinates from lat long to xyz and switching back.

#### Fixed Bugs

- Fixed the issue that in 2D model, toggling end nodes (splitting after merge) of edges will not work without a camera modified event.
- Turned on vtkMapper's CoincidentTopologyResolution to VTK_RESOLVE_SHIFT_ZBUFFER so that polylines/lines will be shown on a polygon.

### Simulation Builder:

#### Added Features

- Added new Function Editor on Functions tab.
- Changed the "int" input from QSpinBox to QLineEdit with QIntValidator so that it does not need to have a default value.
- For 2D AdH, added in constituents, grain sizes, and sediment bed layers.
- For 2D AdH, constraint that a material must be assigned to at most one domain set. When outputting the AdH .bc file, if this isn't true copies of materials are made.
- When outputting "edge" boundary conditions, allows the boundary condition to be assigned to both internal and external model edges.
- Created AdHShallowWater.simb.xml file for defining SimBuilder input for 2D AdH.
- Created AdH2DFormat.xml file for format information for outputting AdH 2D .bc files.

#### Fixed Bugs

- Fixed the ADHExport Dialog poping up in front of file dialog if a keypress event happens on file dialog.

## Version 1.5.0

### Model Builder

#### Added Features

- Changed Omicron input to have model region Ids instead of domain set/material ids.
- Added MAP file reading capability along with use of Triangle to mesh the model faces from the MAP reader input.
- Added 2D model support, which includes selection, color-by and visibility control of 2D model edges; split, merge, boundary condition group operations with model edges; generic modification of user names and colors for 2D model entities; one step undo-redo.
- Added capability to load a scene (sg) file into model builder
- New reader for .cmb file -- vtkCMBV4Reader

#### Fixed Bugs

- Fix for changes to Omicron where output mesh is now in 3dm format instead of vtk format.
- Changes to read and write on the server instead of the client.

### Simulation Builder:

#### Added Features

- Added "Advanced" option for filtering parameters on the GUI
- Added capability to allow users change icons for toplevel tabs.
- Add material and function library support
- Veg information now able to be handled in SimBuilder along with exporting proper ADH veg and ray information.

#### Fixed Bugs

- Cleaned up the extra tabs on Analysis top level tab.
- Fixed problem where option information wasn't getting saved in the SimBuilder file.
- Changes to read and write on the server instead of the client.

## Version 1.3.5

### Model Builder:

#### Added Features

- Updated Splash and About screens

#### Fixed Bugs

- Fixed drag and drop issue on the Mac

### Simulation Builder:

#### Added Features

- Adding the ability to specify a function as advanced when reading in from a simbuilder file.
- Added "Advanced" option for Functions

#### Fixed Bugs

- Fixed bug where the simbuilder reader wasn't properly handling all advanced options.
- Fixed some GUI issues with advanced options.

## Version 1.3.4

### Simulation Builder:

#### Added Features

- Added in Advance option to hide certain input
- Changed the exporter to use .bc as the default file extension
- Changed MP MID cards to be from material index to model region unique persistent Id (e.g. MP MID <materialIndex> <modelRegionUniquePersistentId>

#### Fixed Bugs

- Fixed issues with the drop down menus not always up-to-date
- Added END card to signal and of the BC file
- Updated OP TRN, OC INT, and OC ADP to work as desired as well as proper spacing for MP cards with only a single character like MP K
- Changed input method for double values to properly show precision
- Fixed issue with incorrect number of FCS and NDS cards from SimBuilder

## Version 1.3.3

### Model Builder

#### Added Features

- Name changed from Conceptual Model Builder to Model Builder
- Volume meshing dialog enhanced to allow more advanced TetGen commands

### Simulation Builder:

#### Added Features

- Better communication/linkage between Model Builder and Simulation Builder
- Set a default value for all entries that do not require a function/sequence
- Full ADH output including NDS and FCS cards (not verified correct yet). Exporting ADH output requires the ModelBuilder model was created from a 3dm file in order to get node ids, cell ids, and cell sides correct
- Added MP MID card to associate a SimBuilder material with a Model Builder domain set.
- Currently numbering Model Builder domain sets consecutively to try and match up tetgen indexing with SimBuilder indexing.

#### Fixed Bugs

- Temporary fix for problem with the heat transport boundary conditions having widgets not appear properly. Currently the NB RAY heat transfer boundary condition does not ask for the correct amount of input.

## Version 1.3.2

### Added Features

- APIs added to pass loaded CMB model to SimBuilder to initialize simulation parameters

## Version 1.3.1

### Added Features

- Added SimBuilder as part of CMB --- "Functions" "Global Constants" " Time" "Solvers" Tabs should be working now, and other tabs are being worked on.
- There is an xml file (SimBuilder.simb.xml) in the install/package directoy that can be loaded into CMB which will invoke the SimBuilder UI panel.
- The Functions tab has copy/paste feature to function table, which interact with ClipBoard, so that it can copy/paste to/from Excel application and within the function table itself.
- The writing of the actual adh with these tabs should also be working, but currently it is not enabled from CMB GUI yet.

### Fixed Bugs:

- If a new dataset is loaded over an existing data, the display panel may show duplicated/multiple

## Version 1.3.0

### Added Features

- Added "Hover" (2D coordinates) in lower left corner of GUI when in 2D manipulation mode.
- Setting of canonical directions no longer does a resetView; the focal point is unchanged, but the camera position (based on desired view direction and "current" camera distance) and viewUp are changed. This allows the view to stay focused on a region of interest. The user can click "resetView" if zooming out was also desired (so extra click in that case).
- When switching between 2D and 3D manipulation modes, set parallel scale or camera position (respectively) to keep approximately the same view (of course, when switching to 2D, will be looking down a major axis so it is really the apparent "distance" of the camera from the data that is kept ~constant).
- Changed 2D controls to more closely match 3D controls (in particular, Pan as middle mouse button).
- Added feature to create a nodal group directly from the grow result, which first does splits on model faces if necessary, then creates nodal group from the selected model faces.
- Modified the default line segment (well) representation in CMB so that it can show the points better when selected.
- Moved to "Version 4" CMB files (with increased support for 2D models)

## Version 1.2.2

### Fixed Bugs

- Fixed bug that was writing out incorrect information for the nodes.bc file.
- Tried to reduce memory usage by getting rid of unneeded point, cell, and field data associated with the master polydata.

## Version 1.2.1

### Added Features

- Bug #7616: writing out only needed information in *Nodes.bc and *Faces.bc file when exporting a BCS file from a pre-generated 3dm file.
- Bug #7225: BCS export will now work for other mesh facet types besides triangles.
- Can switch between "2D Manipulation" and "3D Manipulation" options for camera

### Fixed Bugs

- Bug #7404: CMB now retains proper surface mesh facet to 3dm mesh tet (and tet's face) for file IO.

## Version 1.0.0

### Added Features

- New GUI tree and controls to browse and change nodal spacings of lines in CMB
- Added "HardPointsGroups", if they are available, when writing the BCS file
- CMB file now written in binary format instead of ASCII
- ParaView's axes control now available
- Faces.bc and Nodes.bc files are written when writing the BCS file, IF the data was pulled into CMB via a 3dm file

### Fixed Bugs

- Bug: #7267, grow-behaviour bug
- Bug: #7225, incorrect "NumberOfValues" might be written to BCS file

## Version 0.3.3

* Fixed Bugs:
BUG: Unique persistent ids weren't unique, thus was some issue moving shells from
one material to another (probably were other symptoms)
* Two-sided coloring for "multi-material" when coloring by shell or material
* CMB file version increased to 3 (but still read version 2)

## Version 0.3.2

* Fixed Bugs:
BUG: coloring of individual objects and also by all faces / regions / materials
BUG: Node selection bug when creating a new node group node
BUG: "Zoom to Selection" not working for nodal group selection
BUG: Previous release broke ability to read poly files into CMB
BUG: Insufficient point precision when writing BCS file
BUG: If meshing failed, meshing option wasn't reenabled
* Filter added to make sure all normals are pointing out (on per region basis)
when importing data
* Shell/region completion added (right now only used when building the model from
mesh output in SceneGen)
* "Point Inside" computed during building of the model, whether in SceneGen after
computing the mesh or after importing a 3dm or sol file

## Version 0.3.1

* Duplicate faces of solid (*.sol) files are merged (and degenerate polygons are converted to lines)
* Concave polygons in *.poly files are triangulated for correct rendering
* Support for nodal groups
* Multi-material support for 3dm files

## Version 0.3.0

* New "model-centric" version of CMB

## Version 0.2.8

* Added the ability to read solid files

## Version 0.2.7

* Background color can be changed

## Version 0.2.6

* Fixed the material hardcode problem in Omicron mesher

## Version 0.2.5

* Added continued Grow-Merge and Grow-Remove functionality.
* Added a new filter to extract interior boundaries.
* Fixed Bugs:
BUG: Fixed issues with modifying transformation properties from display editor for multiple selection.
BUG: Fixed problem with VTK filters not properly cleaning up after each excecute.

## Version 0.2.4

* Added an checkBox to allow user enable/disable sorting by column in CMB trees.
* Converted preview dialog to be non-modal.
* Allow the user to specify a Omicron "model" file to add PointInside info to the current CMB data,
if the CMB data doesn't contain the PointInside info required to run the volume mesher.
* Fixed Bugs:
BUG: [6446] Adjust real estate on Face Inspector.
BUG: [6454] problems with coloring objects.
BUG: [6445] Highlight BC set when added in CMB;
Same behavior is also added when adding new Material node.
BUG: [6444] CMB ability to rearrange BC Groups
BUG: [6443] Move "Spawn Volume Mesher" from File menu to Tool menu in CMB
BUG: [6447] Change icons for "do not accept" button and "accept" button of "Grow" toolbar in CMB.
BUG: [6448] Move "Zoom on Selection" button in CMB to bottom of the panel.

## Version 0.2.3

* Added "Zoom on Selection" button in CMB.
* Changed the Selection of a model face to use "InsideOut" property of SelectionSource
to select all the facets on the face, which improves selection performance.
* Fixed problem with incorrect number of regions in Omicron Volume mesher input file
* Fixed issues with incorrect Material IDs in Omicron Volume mesher input file
* Added logic to automatically write out a bcs file when generating Omicron input file,
and use this bcs file name in the Omicron input file, instead of the closed shell file name.
* Added the functionality to have shells include a translation point in CMB file.
* Added PointInside info to CMB file written from SceneGen such that executing
Omicron "mesh" in CMB doesn't require the omicron "model" input file.
* Added a (volume) meshing dialog in CMB similar to SceneGen's surface meshing dialog.
* Added logic to see if the CMB data has the PointsInside info,
which is required to generate input for Omicron ("mesh")...
if not, disable both "Generate Omicron Input" and "Spawn Volume Mesher".
NOTE: In the future, We should/will load PointsInside info from "model" input file
if they are not present.

## Version 0.2.2

* Modified drag-drop behavior on the Trees in CMB so that they behave more consistently.
* Fixed some issues with *Grow* operation related Toolbar button update.
* Fixed the "Color" problem when reorganizing the tree. [Mantis Bug 0006403]
* Changed the display NOT to reset the camera when visibility of model faces are changed.
* Added new 32x32 icons for toolbars and updated the GUI to use these new icons.
* Removed some resetCamera calls, so that the display does not look very "jumpy",
especially for mesh-facet-picking and grow.

* Fixed problem with using the internal meshers.

## Version 0.2.1

* Fixed "flickering" in the display panel when the selection is changed.
* Fixed issues with the display panel when a file is closed and another is loaded.
* Fixed some cmb file-reading backward compatibility issues.
* Fixed the model face selection process - it was always missing cell 0.
* Fixed issue with clearing the selection based on growing.

## Version 0.2.0

1. There is now the ability to export the Boundary Condition information. The file is in XML format with
descriptions included. The data that is stored is:
* node locations
* mesh facets with the number of nodes, the mesh facet's model face, and the node Ids
* model faces with the model face's shell Id and user specified name
* boundary conditions with a user specified name and Id, type (currently only face but point type in the future) and the model face Ids that the BC is applied over
* materials with specified user name and Id
* shells with User specified name and material of the shell
Note that all objects are ordered implicitly starting from zero.

2. Grow

2.1 There is a toolbar with three buttons (Grow, Clear-Grow, Accept-Grow) and a spinbox for changing Angles.
* Grow-button is used to start a grow-selection from a mesh facet based on the angle in the spinbox.
After click the grow button in the toolbar, the Mouse cursor will become a "Pointing Hand" to indicate that
we are in "Grow" mode. When we are in this mode, the regular selection toolbar is disabled,
and the selection from the trees is also disabled. To get back to the regular selection mode, we need to either
Clear-Grow or Accept-Grow, or uncheck the Grow-button.
* Accept-Grow will create a new BC with the grow-selection, which includes subdividing model faces if necessary, and
create a new BC with the selected model faces.
* Clear-Grow will clear the current grow selection without generateing new BCS.
2.2 If Ctrl-Key is down, we can select/deselect individual mesh facets, to edit a current grow-selection,
or to create a brand new selection from scratch by picking or rubber-banding mesh facets.

***!!! Note: For each picking/grow operation, a click on Grow-button is required. !!!***

3. Merge

* Model faces belong to the same shell can be merged together.

## Version 0.1.7

(A major upgrade from previous versions)

1. Input

1.1 Supported formats: "CMB files (*.cmb);;VTK data files (*.vtk *.vtu);;Solids (*.2dm)"

2. Object Viewing and Properties Modification

2.1 There are two tree widgets in the "Property" tab of the left GUI panel. The top tree is set up by hierarchy
Material->Shell->Model Face (MF), in which the MF is the basic *object* that all CMB operations
will operate on. The tree hierarchy can be reorganized by dragging and dropping with certain contraints.
The bottom tree is for creating/viewing/modifying boundary conditions (BC). Again drag-n-drop can be used here too
to reorganize or create new BCs. You can even drag items from the top tree into the bottom tree to create BCs.
2.2 There is a visibility column in both trees, which can be used to control visibility of different objects.
2.3 Material and Shell names can be modified by editing directly in the top tree, and BC names can be modified
directly by editing text in the bottom tree.
2.4 MFs can be split by changing the feature angles of selected MFs.
2.5 A one-step "Reset State" can reverse the modifications of Material/Shell/BC names, BCs and MFs to
the last saved state created by "Save State"

3. Display

3.1 There are many display related properties that can be modified from the "Display" tab of the left GUI panel,
such as changing the representation style, doing transformation, modifying lighting, edge style and annotation etc.
If there is no MF selected in the scene, the changes of display properties will be applied to all
MFs; if there are selected MFs, the changes will be applied only to those selected faces.
3.2 There are also toolbar buttons to modify camera view direction, colorby classification (Matererial,
Shell, MF, BC). The "Set color button" in the toolbar can change the solid color for those selected MFs.
3.3 Known issue. We need to work out how to preserve/modify/display colors that are saved in the CMB file.

4. Selection

4.1 A rubber band style selection (mousedown-n-drag or just click) is offered with a toolbar button. All the
visible MFs within the rubber band boundary will be selected. If the Shift-Key is down while doing the
rubber-band-selection, the previous selections will NOT be cleared, and the new selections are appended to
current selections, otherwise, the previous selection will be cleared, and the new selections will become the
current selection. Note, this selection mechanism is based on surface selection, so if the opacity of an MF is
less than 1, it will NOT be selected with Rubber-band-selection(it can still be selected from the trees).
This *feature* can be used to skip certain MF (such as the ground) while doing rubber-band-selection.
4.2 A "Select mode" toolbar dropdown controls what will be selected after rubber-band-selection. If Material or
Shell is the *selection mode*, the whole material or shell who contains the selected MFs will be selected.
4.3 The selection is also linked with the two tree widgets on the "Properties" tab in the left GUI panel.
4.4 The selection representation style can be changed from a toolbar drop down list.
4.5 "Clear Selection" button on the bottom of the "Properties" tab of the left GUI panel can be used to
clear selections.
4.6. Known issue: There is a *refresh* flicking on the display tab GUI when selections are changed.

5. Output

5.1 CMB can save out CMB Files(*.cmb).
5.2 An Omicron input file (.dat), for "mesh", can be generated. It requires specification of the "model" input.

6. Spawn Mesher
6.1 "Spawn Surface Mesher" option and "Spawn Volume Mesher" option
- user can select alternate executable (e.g. - if not built with the app)
- abort button to kill the process
- "Process Output" button to display the output from the Process
- The progress bar for monitoring spawned processes will display messages extracted from the
process output (indicated by "Progress: " at the start of the line of output)
- NOTE: if click in "Process Output" window, new text added at the cursor location, even though the
code seems to be coorect to place it at the end
- Upon successful completion, user asked if they want to load the output
6.2 The default surface and volume meshers are remembered during a session. In other words, if you change
which surface mesher to use (or specify which one to use becuase there is no default), the next time you
start up the surface mesher DURING THAT SESION, the previously indicated mesher will be used.

7. Testing
7.1 There are utilities to record and replay a test under the "Tools" menu.

## Version 0.1.6

- The default surface and volume meshers are remembered during a session. In other words, if you change
which surface mesher to use (or specify which one to use becuase there is no default), the next time you
start up the surface mesher DURING THAT SESION, the previously indicated mesher will be used.
- The progress bar for monitoring spawned processes has been replaced by messages extracted from the
process output (indicated by "Progress: " at the start of the line of output)

## Version 0.1.5

- Issue with "Selection" noted in 0-1-4 has been fixed. Can also now "clear" selection using button in
Save State/Restore State area
- Can now load from "Recent Files"
- "Spawn Surface Mesher" option and "Spawn Volume Mesher" option
- user can select alternate executable (e.g. - if not built with the app)
- progress bar indicates process is running (but not actually linked to progress)
- abort button to kill the process
- "Process Output" button to display the output from the Process
- NOTE: if click in "Process Output" window, new text added at the cursor location, even though the
code seems to be coorect to place it at the end
- Upon successful completion, user asked if they want to load the output
- A lot of source re-organization and cleaning-up under the hood for future development.
- Help now displays README.txt file

## Version 0.1.4

1. Input

1.1 Supported formats: "ParaView files (*.vtk *.vtu *.vtm);;Solids (*.2dm)"
1.2 After loading the geometry file, a MF (boundary condition) file, which is
associated with the geometry file, can also be loaded.
1.3 Known issue: if the MFs file does not match the geoemtry file that was loaded
(different number of "faces"/primitives) or does not have the expected information, an
"Output Messages" dialog will indicate an error, but the CMB will not crash.
1.4 Known issue: Reading .sol file is disabled because the new source class, vtkHydroModelSource,
does not handle multi-block dataset yet.

2. Display

2.1 There are many display related properties that can be modified from the "Display" tab of the left GUI panel,
such as selecting different cell arrays of the cell data to color,
changing the representation style, doing transformation, modifying lighting, edge style and annotation etc.
2.2 There are also toolbar buttons to modify camera view direction, colorby different cell arrays and
change view representation.

3. Selection

3.1 A rubber band style selection (mousedown-n-drag or just click) is offered with a toolbar button.
3.2 The selection can also be changed from the "Properties" tab in the left GUI panel by selecting rows
in the MFs table or Material/Region table.
3.3 Known Issues: There are some issues currently with refreshing the selections in the Material/Region table
and the MFs table of the left GUI panel when a selection is cleared on the display.

4. Properties Modification

4.1 Material IDs can be modified by selecting the regions in the Material table of the Properties tab.
4.2 MFs can be regenerated(splitted) by changing the feature angles of selected MFs.
Different faces from the same region can also be merged into one MF.
4.3 A one-step "Reset State" can reverse the modifications of Material IDs and MFs to
the last saved state created by "Save State"

5. Output

5.1 CMB can save out a .vtk and .2dm file. If the vtk format is selected, a MFs file will also
be saved (see 5.2). If "Save Data" as output.vtk, MFs will be save to outputBC.vtk.
5.2 A new MFs (Boundary Conditions) file can also be saved out from CMB (will indicate the
geometry file that was read in as the geometry for the faces)
5.3 An Omicron input file (.dat), for "mesh", can be generated. It requires specification of the "model" input.