Computing Reviews

Advanced finite element simulation with MSC Marc :application of user subroutines
Javanbakht Z., Öchsner A., Springer International Publishing,New York, NY,2017. 347 pp.Type:Book
Date Reviewed: 07/13/17

Commercial (and other) finite element packages give their users the option to replace some of the package’s built-in subroutines with user-defined customized versions. This feature provides great flexibility and permits, for example, enhancing the package using specialized mathematical models for certain subproblems that would otherwise not be available. In this way, scientists can use such models in an established and tested overarching framework; they do not need to implement the complete package on their own. For the special case of the Marc software system (and its associated pre- and postprocessor Mentat), Javanbakht and Öchsner’s book promises a “comprehensive introduction” to this feature. My feeling is that the text can only keep a rather small part of this promise.

Roughly speaking, the book can be divided into four parts. The first part is formed by chapter 1, containing a quite lengthy introduction to the programming language Fortran, apparently written for complete novices in the field of programming and software development. Why Fortran? Of course, there are historical reasons for this, and the Marc code itself to which the user subroutines under consideration will eventually be linked is written in Fortran: this leads the authors to the conclusion that “basic knowledge of the language is indispensable” (abstract of chapter 1). But on the other hand, they explicitly state later on (p. 123) that it is no problem to completely avoid Fortran because the user subroutines could be written in C or C++ just as well. (Unfortunately, inconsistencies of this type occur in very many contexts all over the book.) This part of the text takes up about a third of the overall number of pages and really bears no relation at all to finite element software in general, Marc in particular, or corresponding user subroutines. Apart from that, I also found the structure of this chapter somewhat unclear, and the presentation seems imprecise.

Chapter 2 forms the second part of the book. It contains a brief introduction to the internals of Marc such as, for example, the required input data formats, and to the way in which Mentat’s preprocessing capabilities can be used to create an input deck for Marc.

The third part comprises chapters 3 and 4; it shows a number of example use cases for user subroutines and lists possible Fortran source codes that can be used to handle the corresponding tasks. As such, this part contains the information that the reader of the cover text probably expects to find. Given a specific application scenario, the reader is left alone with the task of checking if and where this particular question is addressed in the book: the subject index does not provide any help in this respect. Regrettably, this part only fills a bit more than a quarter of the book. I think the authors should have provided much more detail in this part.

In both the second and the third parts, the authors attempt to explain how certain required tasks can be approached via Mentat’s graphical user interface. While this may indeed help novice readers, I do not think the authors’ approach for doing this via a static medium like a book, even if it also exists in electronic form, is really didactically appropriate.

The appendix can be seen as the book’s fourth and last part. It contains listings of a large set of auxiliary subroutines that users may need to call from their own subroutines. Strangely, there does not seem to be a companion website from which the source files for these routines can be downloaded.

The book’s technical quality would greatly benefit from a thorough round of proofreading. The number of misprints, incorrect cross-references, and other typesetting errors is annoyingly large. This is particularly problematic since many of these problems appear in Fortran program listings that due to these errors will not produce what has been intended, or that will not even compile at all.

Maybe my expectations about the book did not match what the authors had in mind when writing it, but my overall assessment is dominated by disappointment.

Reviewer:  Kai Diethelm Review #: CR145421 (1709-0598)

Reproduction in whole or in part without permission is prohibited.   Copyright 2024 ComputingReviews.com™
Terms of Use
| Privacy Policy