The TUBA system consists of a set of integrated tools for the generation of business-oriented applications. Tools and applications have a modular structure, represented by class objects. The article describes the arch...
详细信息
The TUBA system consists of a set of integrated tools for the generation of business-oriented applications. Tools and applications have a modular structure, represented by class objects. The article describes the architecture of the environments for file processing, screen handling and report writing.
In this paper, we consider non-isothermal two-phase flow of two components (air and water) in gaseous and liquid phases in extremely low-permeable porous media through the use of the finite element method (FEM). Inter...
详细信息
In this paper, we consider non-isothermal two-phase flow of two components (air and water) in gaseous and liquid phases in extremely low-permeable porous media through the use of the finite element method (FEM). Interphase mass transfer of the components between any of the phases is evaluated by assuming local thermodynamic equilibrium between the phases. Heat transfer occurs by conduction and multiphase advection. General equations of state for phase changes (Clausius-Clapeyron and Henry law) as well as multiphase properties for the low-permeable bentonites are implemented in the code. Additionally we consider the impact of swelling/shrinking processes on porosity and permeability changes. The numerical model is implemented in the context of the simulator RockFlow/RockMech (RF/RM), which is based on object-oriented programming techniques. The finite element formulations are written in terms of dimensionless quantities. This has proved to be advantageous for preconditioning composite system matrices of coupled multi-field problems. Three application examples are presented. The first one examines differences between the Richards' approximation and the multicomponent/multiphase approach, and between two numerical coupling schemes. The second example serves as partial verification against experimental results and to demonstrate coherence between different element types. The last example shows simultaneous desaturation and resaturation in one system.
Fundamental concepts of programming and data structures are usually taught with graphical tools such as simulations and animations. Conflictive animations have been proposed to improve students' understanding of p...
详细信息
Fundamental concepts of programming and data structures are usually taught with graphical tools such as simulations and animations. Conflictive animations have been proposed to improve students' understanding of programming concepts. In conflictive animations, errors are introduced in the animations to motivate students to constantly check their knowledge against what is being animated. We have implemented a framework in an animation tool that allows the automatic generation of conflictive animations of statements, expressions, and other programming constructs. The automatic generation is challenging due to the alternative paths execution can take and their side effects. The architecture of the tool consists of several layers that can alter the normal interpretation or visualization of the program. The framework and the tool have been evaluated by creating conflictive animations of two programming concepts-for-loops and inheritance-and by running a set of 27 examples taken from Java textbooks. Of these, over two thirds (19) required no modification or only minor changes to create the conflictive animations. The reasons that the remaining examples did not generate conflictive animations automatically were divided between the layered architecture used and the example program itself.
Finding an appropriate turbulence model for a given flow case usually calls for extensive experimentation with both models and numerical solution methods. This work presents the design and implementation of a flexible...
详细信息
Finding an appropriate turbulence model for a given flow case usually calls for extensive experimentation with both models and numerical solution methods. This work presents the design and implementation of a flexible, programmable software framework for assisting with numerical experiments in computational turbulence. The framework targets Reynolds-averaged Navier-Stokes models, discretized by finite element methods. The novel implementation makes use of Python and the FEniCS package, the combination of which leads to compact and reusable code, where model- and solver-specific code resemble closely the mathematical formulation of equations and algorithms. The presented ideas and programming techniques are also applicable to other fields that involve systems of nonlinear partial differential equations. We demonstrate the framework in two applications and investigate the impact of various linearizations on the convergence properties of nonlinear solvers for a Reynolds-averaged Navier-Stokes model. (C) 2011 Elsevier Ltd. All rights reserved.
This paper presents an object-oriented architecture for structural design software. The architecture's novel features are the representation of an artifact with distinct levels of idealization, a hierarchy of clas...
详细信息
This paper presents an object-oriented architecture for structural design software. The architecture's novel features are the representation of an artifact with distinct levels of idealization, a hierarchy of classification within each of these levels, and the appropriate separation of software components. These enable seamless integration of geometric modeling and structural analysis in an interactive environment, extensibility of modeling and analysis capabilities, and integration of interactive multi-objective optimization. The paper presents a design environment implemented on the basis of the architecture, and demonstrates the benefits of refocusing engineering software from analysis to design. (C) 2012 Elsevier Ltd. All rights reserved.
The current land use management framework considers economic, social, and environmental influences individually, making it difficult to achieve sustainable development. Therefore, this study aims to develop a system d...
详细信息
The current land use management framework considers economic, social, and environmental influences individually, making it difficult to achieve sustainable development. Therefore, this study aims to develop a system dynamics model to help decision makers to integrally and systematically consider the components and interactions in land use management. Based on the concept of sustainable development, this study uses systems thinking to develop dynamics of sustainable land use management in a river basin, which considers human activities, land resources, water resources, and air resources integrally. Furthermore, this study uses the concept of driving force-state-response to establish a conceptual dynamics framework for sustainable land use management. Because of the complicated interactions among the above components and iterative decision-making procedures, this study uses Vensim software and the concept of object-oriented programming to develop a sustainable land use management system dynamics model (SLUMSD model) based on the conceptual dynamics framework. The Nankan river basin is used as a case study to illustrate the capability of the SLUMSD model. The case study indicates that the interactions among the components in sustainable land use management can be effectively identified in the SLUMSD model. While planning strategies for sustainable land use management, decision-makers can use the SLUMSD model to understand how the components vary with different alternatives. Using the SLUMSD model to iteratively modify alternatives can ensure appropriate decision-making in sustainable land use management.
PyTrilinos is a collection of Python modules that are useful for serial and parallel scientific computing. This collection contains modules that cover serial and parallel dense linear algebra, serial and parallel spar...
详细信息
PyTrilinos is a collection of Python modules that are useful for serial and parallel scientific computing. This collection contains modules that cover serial and parallel dense linear algebra, serial and parallel sparse linear algebra, direct and iterative linear solution techniques, domain decomposition and multilevel preconditioners, nonlinear solvers, and continuation algorithms. Also included are a variety of related utility functions and classes, including distributed I/O, coloring algorithms, and matrix generation. PyTrilinos vector objects are integrated with the popular NumPy Python module, gathering together a variety of high-level distributed computing operations with serial vector operations. PyTrilinos is a set of interfaces to existing, compiled libraries. This hybrid framework uses Python as front-end, and efficient precompiled libraries for all computationally expensive tasks. Thus, we take advantage of both the flexibility and ease of use of Python, and the efficiency of the underlying C++, C, and FORTRAN numerical kernels. Out numerical results show that, for many important problem classes, the overhead required by the Python interpreter is negligible. To run in parallel, PyTrilinos simply requires a standard Python interpreter. The fundamental MPI calls are encapsulated under an abstract layer that manages all interprocessor communications. This makes serial and parallel scripts using PyTrilinos virtually identical.
Double dispatch is the ability to dynamically select a method not only according to the run-time type of the receiver (single dispatch), but also according to the run-time type of the argument. This mechanism unleashe...
详细信息
Double dispatch is the ability to dynamically select a method not only according to the run-time type of the receiver (single dispatch), but also according to the run-time type of the argument. This mechanism unleashes the power of dynamic binding in object-oriented languages, so enhancing re-usability and separation of responsibilities. However, many mainstream languages, such as, e.g., C++ and Java, do not provide it, resorting only to single dispatch. In this paper we propose an extension of C++ (also applicable to other object-oriented languages) that enables double dispatch as a language feature. This yields dynamic overloading and covariant specialization of methods. We define a translation from the new constructs to standard C++ and we present the preprocessor implementing this translation, called doublecpp. The translated code enjoys static type safety and implements the semantics of double dispatch by using only standard mechanisms of static overloading and dynamic binding, with minimal impact on the performance of the program. Copyright (C) 2006 John Wiley & Sons, Ltd.
We propose a novel formalism, called Frame Logic (abbr., F-logic), that accounts in a clean and declarative fashion for most of the structural aspects of object-oriented and frame-based languages. These features inclu...
详细信息
We propose a novel formalism, called Frame Logic (abbr., F-logic), that accounts in a clean and declarative fashion for most of the structural aspects of object-oriented and frame-based languages. These features include object identity, complex objects, inheritance, polymorphic types, query methods, encapsulation, and others. In a sense, F-logic stands in the same relationship to the object-oriented paradigm as classical predicate calculus stands to relational programming. F-logic has a model-theoretic semantics and a sound and complete resolution-based proof theory. A small number of fundamental concepts that come from object-oriented programming have direct representation in F-logic;other, secondary aspects of this paradigm are easily modeled as well. The paper also discusses semantic issues pertaining to programming with a deductive object-oriented language based on a subset of F-logic.
Java is widely applied from the small embedded devices to enterprise systems nowadays due to its object-oriented features and corresponding advantages of security, robustness, and platform independence. Java programs ...
详细信息
Java is widely applied from the small embedded devices to enterprise systems nowadays due to its object-oriented features and corresponding advantages of security, robustness, and platform independence. Java programs are compiled into Java Bytecodes, which are executed in the Java virtual machine. Among the current hardware or software solutions to the Java virtual machine, the object-oriented related Bytecodes are implemented by software traps or microcode, and their performance does not match well with the essential requirements of memory-constraint embedded devices, such as real-time operations and low power consumptions. In this paper, a novel Java processor named jHISC is proposed, which mainly targets Java applications in the small embedded devices. In jHISC, 94% of Bytecodes and 83% of the object-oriented related Bytecodes are implemented by hardware directly. Compared with PicoJava II and JOP, jHISC speeds up the overall performance about 30% and 183%, respectively. (C) 2006 Elsevier B.V. All rights reserved.
暂无评论