AFM Nanomechanical Maps to Young’s Modulus Converter

AFM Nanomechanical Maps to Young’s Modulus Converter

Select contact model, enter AFM parameters, and calculate Young’s modulus.

Adhesion Force: ${adhesionForce.toFixed(2)} nN

Results:

Young’s Modulus: ${youngsModulus.toFixed(2)} MPa

Effective Modulus (E/(1-ν²)):

${effectiveModulus.toFixed(2)} MPa `; resultSection.innerHTML = resultText; resultSection.style.display = 'block'; pdfButton.disabled = false; }; // PDF download logic const downloadPDF = () => { if (!currentResults.model || !resultSection.innerText) { errorMessage.textContent = 'No results available to download.'; errorMessage.style.display = 'block'; return; } try { const { jsPDF } = window.jspdf; if (!jsPDF) { console.error('jsPDF is not loaded.'); errorMessage.textContent = 'PDF generation failed. Please try again.'; errorMessage.style.display = 'block'; return; } const doc = new jsPDF(); doc.setFont('helvetica', 'bold'); doc.setFontSize(16); doc.text('AFM Young’s Modulus Converter', 20, 20); doc.setLineWidth(0.5); doc.line(20, 25, 190, 25); doc.setFont('helvetica', 'normal'); doc.setFontSize(12); doc.text(`Contact Model: ${currentResults.model.toUpperCase()}`, 20, 40); doc.text(`Force: ${currentResults.force.toFixed(2)} nN`, 20, 50); doc.text(`Indentation Depth: ${currentResults.indentation.toFixed(2)} nm`, 20, 60); doc.text(`Tip Radius: ${currentResults.tipRadius.toFixed(1)} nm`, 20, 70); doc.text(`Poisson’s Ratio: ${currentResults.poissonRatio.toFixed(2)}`, 20, 80); doc.text(`Adhesion Force: ${currentResults.adhesionForce.toFixed(2)} nN`, 20, 90); doc.text('Results:', 20, 100); doc.text(`Young’s Modulus: ${currentResults.youngsModulus.toFixed(2)} MPa`, 20, 110); doc.text(`Effective Modulus (E/(1-ν²)): ${currentResults.effectiveModulus.toFixed(2)} MPa`, 20, 120); doc.setDrawColor(200); doc.rect(15, 35, 180, 90); doc.save('afm_youngs_modulus.pdf'); } catch (error) { console.error('PDF generation error:', error); errorMessage.textContent = 'Failed to generate PDF. Please try again.'; errorMessage.style.display = 'block'; } }; // Reset form logic const resetForm = () => { converterForm.reset(); resultSection.innerHTML = ''; resultSection.style.display = 'none'; errorMessage.style.display = 'none'; pdfButton.disabled = true; currentResults = { model: '', force: 0, indentation: 0, tipRadius: 0, poissonRatio: 0, adhesionForce: 0, youngsModulus: 0, effectiveModulus: 0 }; contactModel.focus(); }; // Event listeners convertButton.addEventListener('click', convertYoungsModulus); resetButton.addEventListener('click', resetForm); pdfButton.addEventListener('click', downloadPDF); // Form submission via Enter key converterForm.addEventListener('submit', (e) => { e.preventDefault(); convertYoungsModulus(); }); }); })();
Scroll to Top