Approximately half of all numerical problems in crashworthiness analysis involve impact dynamics, and accurate contact algorithms are critical to capture the structures’ behavior. Conventional contact algorithms use the principle of preventing ‘slave’ nodes from penetrating ‘master’ segments. Only nodes are checked in these contact algorithms and the connectivity of the nodes (in the slave side) are not considered. Additionally, to achieve efficiency, the conventional contact algorithms use different methods to eliminate element pairs that would unlikely come in contact and simplify the geometry while searching for penetration between the contact pairs. These eliminations and simplifications, sometimes, cause inaccuracy in the results. In this research, a new contact algorithm has been developed and implemented in an explicit nonlinear large displacement finite element code (DYNA3D). A new global search method and a new local search method for contact search have been implemented in the algorithm. The new global search method uses the concept of enclosing spheres around nodes combined with bucket-sorting. Unlike in the current algorithms where bucket-sort checks for presence of nodes in the buckets, bucket-sort in the new global search check for intersections of enclosed spheres with the buckets. In the new local search method, effort is made to represent accurate geometry of the contact surface. The element surfaces are offset by their thickness and, edges and corners are represented using beams of circular cross-section and spheres respectively. Using this configuration, problems associated in finding penetration in a skewed mesh are eliminated. Constant stiffness that is used in computing contact force in current contact algorithms is replaced by exponentially varying stiffness in the new contact algorithm. When compared to the constant stiffness, the varying stiffness applies significantly higher forces when the penetration becomes large. The new contact algorithm has been implemented in DYNA3D and validated. Element level and component level examples have been used to check accuracy of the contact algorithm. Using these examples, gap between the contact surfaces and stress variation along the contact surface are checked. Using the new contact algorithm, the gap distance was found to be accurate and stress variation was found to be minimal. The new contact algorithm has few limitations which need to be addressed before it can be used to solve general three dimensional problems. Provisions should be made to the contact algorithm to include segments from solid elements, and rectangular & varying cross-sectional beam elements in the contact and to delete failed elements from the contact. Care should be taken not to include severely warped elements and initially penetrated elements in the contact definition