4,689 research outputs found

    Computation of Madelung Energies for Ionic Crystals of Variable Stoichiometries and Mixed Valencies and their application in Lithium-ion battery voltage modelling

    Full text link
    Electrostatic energy (Madelung energy) is a major constituent of the cohesive energy of ionic crystals. Several physicochemical properties of these materials depend on the response of their electrostatic energy to a variety of applied thermal, electrical and mechanical stresses. In the present study, a method has been developed based on Ewalds technique, to compute the electrostatic energy arising from ion-ion interactions in ionic crystals like LixMn2O4 with variable stoichiometries and mixed valencies. An interesting application of this method in computing the voltages of lithium ion batteries employing spinel cathodes is presented for the first time. The advantages of the present method of computation over existing methods are also discussed.Comment: 15 page

    Static Deadlock Detection for the SHIM Concurrent Language

    Get PDF
    Concurrent programming languages are becoming mandatory with the advent of multi-core processors. Two major concerns in any concurrent program are data races and deadlocks. Each are potentially subtle bugs that can be caused by non-deterministic scheduling choices in most concurrent formalisms. As an alternative, the SHIM concurrent language guarantees the absence of data races by eschewing shared memory, but a SHIM program may still deadlock if a program violates a communication protocol. We present a model-checking-based static deadlock detection technique for the SHIM language. Although SHIM is asynchronous, its semantics allow us to model it synchronously without losing precision, greatly reducing the state space that must be explored. This plus the obvious division between control and data in SHIM programs makes it easy to construct concise abstractions. Experimentally, we find our procedure runs in only a few seconds for modest-sized programs, making it practical to use as part of a compilation chain

    Buffer Sharing in CSP-like Programs

    Get PDF
    Most compilers focus on optimizing performance, often at the expense of memory, but efficient memory use can be just as important in constrained environments such as embedded systems. In this paper, we present a memory reduction technique for the deterministic concurrent programming language SHIM. We focus on reducing memory consumption by sharing buffers among the tasks, which use them to communicate using CSP-style rendezvous. We determine pairs of buffers that can never be in use simultaneously and use a shared region of memory for each pair. Our technique produces a static abstraction of a SHIM program’s dynamic behavior, which we then analyze to find buffers that can share memory. Experimentally, we find our technique runs quickly on modest-sized programs and often reduces memory requirements by half
    corecore